diff options
Diffstat (limited to 'src/ui/tools')
| -rw-r--r-- | src/ui/tools/measure-tool.cpp | 14 | ||||
| -rw-r--r-- | src/ui/tools/measure-tool.h | 1 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp index 75335ce1a..9191af081 100644 --- a/src/ui/tools/measure-tool.cpp +++ b/src/ui/tools/measure-tool.cpp @@ -339,6 +339,7 @@ MeasureTool::MeasureTool() start_p = readMeasurePoint(true); end_p = readMeasurePoint(false); dimension_offset = 35; + last_pos = Geom::Point(0,0); // create the knots this->knot_start = new SPKnot(desktop, _("Measure start, <b>Shift+Click</b> for position dialog")); this->knot_start->setMode(SP_KNOT_MODE_XOR); @@ -587,6 +588,13 @@ bool MeasureTool::root_handler(GdkEvent* event) if ((event->key.keyval == GDK_KEY_Shift_L) || (event->key.keyval == GDK_KEY_Shift_R)) { explicit_base_tmp = explicit_base; explicit_base = end_p; + showInfoBox(last_pos, true); + } + break; + } + case GDK_KEY_RELEASE: { + if ((event->key.keyval == GDK_KEY_Shift_L) || (event->key.keyval == GDK_KEY_Shift_R)) { + showInfoBox(last_pos, false); } break; } @@ -605,11 +613,11 @@ bool MeasureTool::root_handler(GdkEvent* event) snap_manager.preSnap(scp); snap_manager.unSetup(); } - Geom::Point const motion_w(event->motion.x, event->motion.y); + last_pos = Geom::Point(event->motion.x, event->motion.y); if(event->motion.state & GDK_SHIFT_MASK) { - showInfoBox(motion_w, true); + showInfoBox(last_pos, true); } else { - showInfoBox(motion_w, false); + showInfoBox(last_pos, false); } } else { SPDesktop *desktop = SP_ACTIVE_DESKTOP; diff --git a/src/ui/tools/measure-tool.h b/src/ui/tools/measure-tool.h index f87ac2c81..0fb488948 100644 --- a/src/ui/tools/measure-tool.h +++ b/src/ui/tools/measure-tool.h @@ -77,6 +77,7 @@ private: gint dimension_offset; Geom::Point start_p; Geom::Point end_p; + Geom::Point last_pos; std::vector<SPCanvasItem *> measure_tmp_items; std::vector<SPCanvasItem *> measure_phantom_items; std::vector<SPCanvasItem *> measure_item; |
