diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2009-02-23 21:25:08 +0000 |
|---|---|---|
| committer | dvlierop2 <dvlierop2@users.sourceforge.net> | 2009-02-23 21:25:08 +0000 |
| commit | 171a382512eea79da11349674bd044ee8881ea48 (patch) | |
| tree | 23a61702358853b0db796b1d330313d75ba39f91 /src/gradient-drag.cpp | |
| parent | * Many files moved in SVN r20741, updating their references (diff) | |
| download | inkscape-171a382512eea79da11349674bd044ee8881ea48.tar.gz inkscape-171a382512eea79da11349674bd044ee8881ea48.zip | |
Fix snapping when dragging gradients (implement the snap delay, use snap tolerances from the object snapper)
(bzr r7355)
Diffstat (limited to 'src/gradient-drag.cpp')
| -rw-r--r-- | src/gradient-drag.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 76bed32cf..6d8815938 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -541,8 +541,9 @@ gr_knot_moved_handler(SPKnot *knot, Geom::Point const &ppointer, guint state, gp Geom::Point p = ppointer; - // FIXME: take from prefs - double snap_dist = SNAP_DIST / dragger->parent->desktop->current_zoom(); + SPDesktop *desktop = dragger->parent->desktop; + SnapManager &m = desktop->namedview->snap_manager; + double snap_dist = m.snapprefs.getObjectTolerance() / dragger->parent->desktop->current_zoom(); if (state & GDK_SHIFT_MASK) { // with Shift; unsnap if we carry more than one draggable @@ -595,14 +596,12 @@ gr_knot_moved_handler(SPKnot *knot, Geom::Point const &ppointer, guint state, gp if (!((state & GDK_SHIFT_MASK) || ((state & GDK_CONTROL_MASK) && (state & GDK_MOD1_MASK)))) { // Try snapping to the grid or guides - SPDesktop *desktop = dragger->parent->desktop; - SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop); Inkscape::SnappedPoint s = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(p), Inkscape::SNAPSOURCE_HANDLE); if (s.getSnapped()) { p = s.getPoint(); sp_knot_moveto (knot, p); - } else { + } else if (m.snapprefs.getSnapEnabledGlobally() && m.snapprefs.getSnapModeNode() && !(m.snapprefs.getSnapPostponedGlobally())) { bool was_snapped = false; double dist = NR_HUGE; // No snapping so far, let's see if we need to snap to any of the levels |
