summaryrefslogtreecommitdiffstats
path: root/src
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
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')
-rw-r--r--src/ui/tools/tool-base.cpp9
-rw-r--r--src/ui/tools/tool-base.h2
2 files changed, 9 insertions, 2 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) {
diff --git a/src/ui/tools/tool-base.h b/src/ui/tools/tool-base.h
index 9060f6b86..eff184c74 100644
--- a/src/ui/tools/tool-base.h
+++ b/src/ui/tools/tool-base.h
@@ -234,7 +234,7 @@ protected:
private:
bool _keyboardMove(GdkEventKey const &event, Geom::Point const &dir);
-
+ bool _leftbutton_pressed;
void sp_event_context_set_cursor(GdkCursorType cursor_type);