summaryrefslogtreecommitdiffstats
path: root/src/ui/tools/measure-tool.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-10-04 18:33:00 +0000
committerjabiertxof <jabier.arraiza@marker.es>2015-10-04 18:33:00 +0000
commitef0299883a7bc9402c96856eeebba118ef7f49c8 (patch)
tree825c4fffb1f26ac842e0ef11c1e453d0a1f2ae64 /src/ui/tools/measure-tool.cpp
parentupdate to trunk (diff)
downloadinkscape-ef0299883a7bc9402c96856eeebba118ef7f49c8.tar.gz
inkscape-ef0299883a7bc9402c96856eeebba118ef7f49c8.zip
Add snap and CTRL constrain
(bzr r14393.1.5)
Diffstat (limited to 'src/ui/tools/measure-tool.cpp')
-rw-r--r--src/ui/tools/measure-tool.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp
index 142c04fc3..5521dd6e8 100644
--- a/src/ui/tools/measure-tool.cpp
+++ b/src/ui/tools/measure-tool.cpp
@@ -420,16 +420,14 @@ bool MeasureTool::root_handler(GdkEvent* event) {
if (event->motion.state & GDK_CONTROL_MASK) {
spdc_endpoint_snap_rotation(this, end_point, start_point, event->motion.state);
- } else {
- if (!(event->motion.state & GDK_SHIFT_MASK)) {
- SnapManager &m = desktop->namedview->snap_manager;
- m.setup(desktop);
- 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();
- }
+ } else if (!(event->motion.state & GDK_SHIFT_MASK)) {
+ SnapManager &m = desktop->namedview->snap_manager;
+ m.setup(desktop);
+ 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();
}
showCanvasItems(start_point, end_point);
last_end = motion_w ;
@@ -443,6 +441,17 @@ bool MeasureTool::root_handler(GdkEvent* event) {
this->knot_start->show();
if(last_end){
Geom::Point end_point = desktop->w2d(*last_end);
+ if (event->button.state & GDK_CONTROL_MASK) {
+ spdc_endpoint_snap_rotation(this, end_point, start_point, event->motion.state);
+ } else if (!(event->button.state & GDK_SHIFT_MASK)) {
+ SnapManager &m = desktop->namedview->snap_manager;
+ m.setup(desktop);
+ 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();
+ }
this->knot_end->setPosition(end_point, SP_KNOT_STATE_NORMAL);
this->knot_end->show();
}