From 98561991771e1144cee0db5765ec00c6f80eadbd Mon Sep 17 00:00:00 2001 From: Jabiertxof Date: Thu, 13 Sep 2018 16:05:51 +0200 Subject: Fix a meassure tooltip updated pointed by maren at hacfest, tooltip is not updated if no moviment on shift press --- src/ui/tools/measure-tool.cpp | 14 +++++++++++--- 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, Shift+Click 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 measure_tmp_items; std::vector measure_phantom_items; std::vector measure_item; -- cgit v1.2.3