diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2008-04-07 19:28:34 +0000 |
|---|---|---|
| committer | dvlierop2 <dvlierop2@users.sourceforge.net> | 2008-04-07 19:28:34 +0000 |
| commit | 34568b6a1d6b5151f6e962b03c3478db0d729676 (patch) | |
| tree | 619b53ec1b6fe3f4840105ad02b1897ee5595da4 /src/gradient-drag.cpp | |
| parent | cmake: add comment of why to add base binary dir to include path (diff) | |
| download | inkscape-34568b6a1d6b5151f6e962b03c3478db0d729676.tar.gz inkscape-34568b6a1d6b5151f6e962b03c3478db0d729676.zip | |
Refactor snapper and snapindicator (in order to enable the snapindicator in the selector tool)
(bzr r5374)
Diffstat (limited to 'src/gradient-drag.cpp')
| -rw-r--r-- | src/gradient-drag.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 6c960ed28..7a7957856 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -584,32 +584,34 @@ gr_knot_moved_handler(SPKnot *knot, NR::Point const *ppointer, guint state, gpoi // Try snapping to the grid or guides SnapManager const &m = dragger->parent->desktop->namedview->snap_manager; Inkscape::SnappedPoint s = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, p, NULL); - if (s.getDistance() < 1e6) { + if (s.getSnapped()) { p = s.getPoint(); sp_knot_moveto (knot, &p); - dragger->parent->desktop->snapindicator->set_new_snappoint(p.to_2geom()); + dragger->parent->desktop->snapindicator->set_new_snappoint(s); } else { bool was_snapped = false; - Geom::Point snapped_to; + double dist = NR_HUGE; // No snapping so far, let's see if we need to snap to any of the levels for (guint i = 0; i < dragger->parent->hor_levels.size(); i++) { - if (fabs(p[NR::Y] - dragger->parent->hor_levels[i]) < snap_dist) { + dist = fabs(p[NR::Y] - dragger->parent->hor_levels[i]); + if (dist < snap_dist) { p[NR::Y] = dragger->parent->hor_levels[i]; - snapped_to = p.to_2geom(); + s = Inkscape::SnappedPoint(p, dist, snap_dist, false); was_snapped = true; sp_knot_moveto (knot, &p); } } for (guint i = 0; i < dragger->parent->vert_levels.size(); i++) { - if (fabs(p[NR::X] - dragger->parent->vert_levels[i]) < snap_dist) { + dist = fabs(p[NR::X] - dragger->parent->vert_levels[i]); + if (dist < snap_dist) { p[NR::X] = dragger->parent->vert_levels[i]; - snapped_to = p.to_2geom(); + s = Inkscape::SnappedPoint(p, dist, snap_dist, false); was_snapped = true; sp_knot_moveto (knot, &p); } } if (was_snapped) { - dragger->parent->desktop->snapindicator->set_new_snappoint(snapped_to); + dragger->parent->desktop->snapindicator->set_new_snappoint(s); } } } |
