summaryrefslogtreecommitdiffstats
path: root/src/gradient-drag.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2009-02-23 21:25:08 +0000
committerdvlierop2 <dvlierop2@users.sourceforge.net>2009-02-23 21:25:08 +0000
commit171a382512eea79da11349674bd044ee8881ea48 (patch)
tree23a61702358853b0db796b1d330313d75ba39f91 /src/gradient-drag.cpp
parent* Many files moved in SVN r20741, updating their references (diff)
downloadinkscape-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.cpp9
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