diff --git a/SketchWidget.py b/SketchWidget.py index f061de8..b424942 100644 --- a/SketchWidget.py +++ b/SketchWidget.py @@ -416,12 +416,11 @@ class SketchWidget: self.queue_redraw() def do_line_motion(self, x, y): - snap_ptref = self.get_closest_snap_ptref(x, y) - self.update_hover_snap_point(snap_ptref) + self.update_hover_snap_point(x, y) if self.drawingShape is not None: this_pt = self.screenPtToPt((x, self.size[1] - y)) - if snap_ptref is not None: - this_pt = snap_ptref.getPt() + if self.hover_snap_ptref is not None: + this_pt = self.hover_snap_ptref.getPt() self.drawingConstraints['hv'] = None else: start = self.drawingShape.getPt(0) @@ -478,10 +477,9 @@ class SketchWidget: r = self.dist_bw(self.drawingShape.getPt(0), pt) self.drawingShape.setRadius(r) self.queue_redraw() - self.update_hover_snap_point(None) + self.set_hover_snap_point(None) else: - sp = self.get_closest_snap_ptref(x, y) - self.update_hover_snap_point(sp) + self.update_hover_snap_point(x, y) def cancel_drawing_shape(self): self.drawingShape = None @@ -538,7 +536,11 @@ class SketchWidget: ptrefs.append(p) return ptrefs - def update_hover_snap_point(self, sp): + def update_hover_snap_point(self, x, y): + sp = self.get_closest_snap_ptref(x, y) + self.set_hover_snap_point(sp) + + def set_hover_snap_point(self, sp): if sp is not None: if sp != self.hover_snap_ptref: self.hover_snap_ptref = sp