diff -r 0ce12552cf36 -r 3f92a5e18804 LDViewer.py --- 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()