summaryrefslogtreecommitdiffstats
path: root/src/gradient-drag.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2008-04-07 19:28:34 +0000
committerdvlierop2 <dvlierop2@users.sourceforge.net>2008-04-07 19:28:34 +0000
commit34568b6a1d6b5151f6e962b03c3478db0d729676 (patch)
tree619b53ec1b6fe3f4840105ad02b1897ee5595da4 /src/gradient-drag.cpp
parentcmake: add comment of why to add base binary dir to include path (diff)
downloadinkscape-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.cpp18
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);
}
}
}