summaryrefslogtreecommitdiffstats
path: root/src/measure-context.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2012-01-31 21:05:36 +0000
committerDiederik van Lierop <mail@diedenrezi.nl>2012-01-31 21:05:36 +0000
commitd06dc443b19d8d6be61ea63461c65f62491bec6f (patch)
treefce00854660d050b1e2955277e59decba29c5e84 /src/measure-context.cpp
parentCherry-pick upstream GDL patch 31886 (2011-08-08). Avoid a crash when the pa... (diff)
downloadinkscape-d06dc443b19d8d6be61ea63461c65f62491bec6f.tar.gz
inkscape-d06dc443b19d8d6be61ea63461c65f62491bec6f.zip
Implement tangential and perpendicular snapping in the measurement tool
(bzr r10924)
Diffstat (limited to 'src/measure-context.cpp')
-rw-r--r--src/measure-context.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/measure-context.cpp b/src/measure-context.cpp
index f98ff4de1..2143e35eb 100644
--- a/src/measure-context.cpp
+++ b/src/measure-context.cpp
@@ -214,7 +214,10 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
SnapManager &m = desktop->namedview->snap_manager;
m.setup(desktop);
- m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_OTHER_HANDLE));
+ Inkscape::SnapCandidatePoint scp(motion_dt, Inkscape::SNAPSOURCE_OTHER_HANDLE);
+ scp.addOrigin(start_point);
+
+ m.preSnap(scp);
m.unSetup();
}
} else {
@@ -246,7 +249,10 @@ static gint sp_measure_context_root_handler(SPEventContext *event_context, GdkEv
if (!(event->motion.state & GDK_SHIFT_MASK)) {
SnapManager &m = desktop->namedview->snap_manager;
m.setup(desktop);
- m.freeSnapReturnByRef(end_point, Inkscape::SNAPSOURCE_OTHER_HANDLE);
+ Inkscape::SnapCandidatePoint scp(end_point, Inkscape::SNAPSOURCE_OTHER_HANDLE);
+ scp.addOrigin(start_point);
+ Inkscape::SnappedPoint sp = m.freeSnap(scp);
+ end_point = sp.getPoint();
m.unSetup();
}
}