SFCViewer.py
changeset 144 b67a5de5a24a
parent 122 e6faee0c271b
child 145 4fb225afddf4
--- a/SFCViewer.py	Fri Jan 04 17:47:58 2008 +0100
+++ b/SFCViewer.py	Fri Jan 04 17:49:17 2008 +0100
@@ -212,11 +212,10 @@
                     else:
                         self.SelectedElement.SetSelected(False)
                     self.SelectedElement = None
-                    self.Refresh()
                 if element:
                     self.SelectedElement = element
                     self.SelectedElement.OnLeftDown(event, dc, self.Scaling)
-                    self.Refresh()
+                    self.SelectedElement.Refresh()
                 else:
                     self.rubberBand.Reset()
                     self.rubberBand.OnLeftDown(event, dc, self.Scaling)
@@ -234,7 +233,6 @@
             if self.SelectedElement:
                 self.SelectedElement.SetSelected(False)
             self.SelectedElement = wire
-            self.Refresh()
         event.Skip()
 
     def OnViewerLeftUp(self, event):
@@ -248,7 +246,6 @@
                     self.SelectedElement = Graphic_Group(self)
                     self.SelectedElement.SetElements(elements)
                     self.SelectedElement.SetSelected(True)
-                    self.Refresh()
             elif self.Mode == MODE_COMMENT:
                 bbox = self.rubberBand.GetCurrentExtent()
                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
@@ -260,16 +257,14 @@
                 self.SelectedElement.SetSelectedSegment(0)
             else:
                 self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
+                self.SelectedElement.Refresh()
             wx.CallAfter(self.SetCursor, wx.NullCursor)
-            self.ReleaseMouse()
-            self.Refresh()
         elif self.Mode == MODE_WIRE and self.SelectedElement:
             self.SelectedElement.ResetPoints()
             self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
             self.SelectedElement.GeneratePoints()
             self.SelectedElement.RefreshModel()
             self.SelectedElement.SetSelected(True)
-            self.Refresh()
         event.Skip()
     
     def OnViewerRightUp(self, event):
@@ -288,9 +283,8 @@
                 else:
                     self.SelectedElement.SetSelected(True)
                     self.SelectedElement.OnRightUp(event, dc, self.Scaling)
+                    self.SelectedElement.Refresh()
                 wx.CallAfter(self.SetCursor, wx.NullCursor)
-                self.ReleaseMouse()
-                self.Refresh()
         event.Skip()
     
     def OnViewerLeftDClick(self, event):
@@ -310,12 +304,12 @@
             elif self.Mode == MODE_SELECTION and self.SelectedElement:
                 if not self.IsWire(self.SelectedElement) and not isinstance(self.SelectedElement, Graphic_Group):
                     self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
-                self.Refresh()
+                    self.SelectedElement.Refresh()
             elif self.Mode == MODE_WIRE and self.SelectedElement:
                 self.SelectedElement.ResetPoints()
                 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
                 self.SelectedElement.GeneratePoints()
-                self.Refresh()
+                self.SelectedElement.Refresh()
             self.UpdateScrollPos(event)
         event.Skip()
 
@@ -348,7 +342,7 @@
                 self.SelectedElement.RefreshModel()
                 self.RefreshBuffer()
                 self.RefreshScrollBars()
-                self.Refresh()
+                self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)))
         elif keycode == wx.WXK_RIGHT:
             if event.ControlDown() and event.ShiftDown():
                 self.Scroll(xmax, ypos)
@@ -359,7 +353,7 @@
                 self.SelectedElement.RefreshModel()
                 self.RefreshBuffer()
                 self.RefreshScrollBars()
-                self.Refresh()
+                self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)))
         elif keycode == wx.WXK_UP:
             if event.ControlDown() and event.ShiftDown():
                 self.Scroll(xpos, 0)
@@ -370,7 +364,7 @@
                 self.SelectedElement.RefreshModel()
                 self.RefreshBuffer()
                 self.RefreshScrollBars()
-                self.Refresh()
+                self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])))
         elif keycode == wx.WXK_DOWN:
             if event.ControlDown() and event.ShiftDown():
                 self.Scroll(xpos, ymax)
@@ -381,7 +375,7 @@
                 self.SelectedElement.RefreshModel()
                 self.RefreshBuffer()
                 self.RefreshScrollBars()
-                self.Refresh()
+                self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])))
         else:
             event.Skip()