# If we're very close to the position we started dragging
         # from, this may not be an intentional drag at all.
         if dragging:
-            dx = abs(dc.LogicalToDeviceX(x - self._firstDragX))
-            dy = abs(dc.LogicalToDeviceY(y - self._firstDragY))
-            if self._checkTolerance and (dx <= self.GetDiagram().GetMouseTolerance()) and (dy <= self.GetDiagram().GetMouseTolerance()):
-                return
+            if self._checkTolerance:
+                # the difference between two logical coordinates is a logical coordinate
+                dx = abs(x - self._firstDragX) 
+                dy = abs(y - self._firstDragY)
+                toler = self.GetDiagram().GetMouseTolerance()
+                if (dx <= toler) and (dy <= toler):
+                    return
             # If we've ignored the tolerance once, then ALWAYS ignore
             # tolerance in this drag, even if we come back within
             # the tolerance range.