--- a/LDViewer.py Thu Sep 22 10:56:52 2011 +0200
+++ b/LDViewer.py Thu Sep 22 15:33:31 2011 +0200
@@ -259,16 +259,18 @@
return i
return None
- def FindElement(self, pos, exclude_group = False):
+ def FindElement(self, event, exclude_group = False):
if self.GetDrawingMode() == FREEDRAWING_MODE:
- return Viewer.FindElement(self, pos, exclude_group)
+ return Viewer.FindElement(self, event, exclude_group)
+ dc = self.GetLogicalDC()
+ pos = event.GetLogicalPosition(dc)
if self.SelectedElement and not isinstance(self.SelectedElement, (Graphic_Group, Wire)):
if self.SelectedElement.HitTest(pos) or self.SelectedElement.TestHandle(pos) != (0, 0):
return self.SelectedElement
elements = []
for element in self.GetElements(sort_wires=True):
- if element.HitTest(pos) or element.TestHandle(pos) != (0, 0):
+ if element.HitTest(pos) or element.TestHandle(event) != (0, 0):
elements.append(element)
if len(elements) == 1:
return elements[0]
@@ -296,9 +298,7 @@
if self.GetDrawingMode() == FREEDRAWING_MODE:
Viewer.OnViewerLeftDown(self, event)
elif self.Mode == MODE_SELECTION:
- dc = self.GetLogicalDC()
- pos = event.GetLogicalPosition(dc)
- element = self.FindElement(pos)
+ element = self.FindElement(event)
if self.SelectedElement:
if not isinstance(self.SelectedElement, Graphic_Group):
if self.SelectedElement != element:
@@ -323,11 +323,11 @@
self.SelectedElement = None
if element:
self.SelectedElement = element
- self.SelectedElement.OnLeftDown(event, dc, self.Scaling)
+ self.SelectedElement.OnLeftDown(event, self.GetLogicalDC(), self.Scaling)
self.SelectedElement.Refresh()
else:
self.rubberBand.Reset()
- self.rubberBand.OnLeftDown(event, dc, self.Scaling)
+ self.rubberBand.OnLeftDown(event, self.GetLogicalDC(), self.Scaling)
event.Skip()
def OnViewerLeftUp(self, event):
@@ -366,9 +366,7 @@
if self.GetDrawingMode() == FREEDRAWING_MODE:
Viewer.OnViewerRightUp(self, event)
else:
- dc = self.GetLogicalDC()
- pos = event.GetLogicalPosition(dc)
- element = self.FindElement(pos)
+ element = self.FindElement(event)
if element:
if self.SelectedElement and self.SelectedElement != element:
self.SelectedElement.SetSelected(False)
@@ -377,7 +375,7 @@
self.SelectedElement.SetSelectedSegment(0)
else:
self.SelectedElement.SetSelected(True)
- self.SelectedElement.OnRightUp(event, dc, self.Scaling)
+ self.SelectedElement.OnRightUp(event, self.GetLogicalDC(), self.Scaling)
self.SelectedElement.Refresh()
wx.CallAfter(self.SetCurrentCursor, 0)
event.Skip()