summaryrefslogtreecommitdiffstats
path: root/src/ui/tools/tool-base.cpp
diff options
context:
space:
mode:
authorJabiertxof <jabier.arraiza@marker.es>2019-07-29 08:51:48 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-07-31 05:03:14 +0000
commitd58cc5064f7e67517ab8db0fea830cf4aed8c9dc (patch)
tree69751c397a494bae95c7bef4058337b8f538f32f /src/ui/tools/tool-base.cpp
parentLocalization: Fix extraction of escaped XML characters. (diff)
downloadinkscape-d58cc5064f7e67517ab8db0fea830cf4aed8c9dc.tar.gz
inkscape-d58cc5064f7e67517ab8db0fea830cf4aed8c9dc.zip
Final fix of issue https://gitlab.com/inkscape/inbox/issues/707 Object disappears on accidental R-click when dragging
Diffstat (limited to 'src/ui/tools/tool-base.cpp')
-rw-r--r--src/ui/tools/tool-base.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp
index 64dbf53bc..437160edb 100644
--- a/src/ui/tools/tool-base.cpp
+++ b/src/ui/tools/tool-base.cpp
@@ -115,6 +115,7 @@ ToolBase::ToolBase(gchar const *const *cursor_shape, bool uses_snap)
, desktop(nullptr)
, _uses_snap(uses_snap)
, cursor_shape(cursor_shape)
+ , _leftbutton_pressed(false)
{
}
@@ -375,6 +376,7 @@ bool ToolBase::root_handler(GdkEvent* event) {
switch (event->button.button) {
case 1:
+ this->_leftbutton_pressed = true;
if (this->space_panning) {
// When starting panning, make sure there are no snap events pending because these might disable the panning again
if (_uses_snap) {
@@ -442,7 +444,9 @@ bool ToolBase::root_handler(GdkEvent* event) {
ret = TRUE;
} else {
- sp_event_root_menu_popup(desktop, nullptr, event);
+ if (!this->_leftbutton_pressed) {
+ sp_event_root_menu_popup(desktop, nullptr, event);
+ }
}
break;
@@ -531,6 +535,9 @@ bool ToolBase::root_handler(GdkEvent* event) {
case GDK_BUTTON_RELEASE:
+ if (event->button.button == 1) {
+ this->_leftbutton_pressed = false;
+ }
xp = yp = 0;
if (panning_cursor == 1) {