From 7d04f846c6977e01daf520dbd72c5cda47bc67bc Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Sun, 31 Oct 2021 22:16:34 +0100 Subject: [PATCH] Make sure the XYWindow doesn't respond to our toggle modifiers. --- src/windowobservers.cpp | 15 +++++++++++++++ src/xywindow.cpp | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/windowobservers.cpp b/src/windowobservers.cpp index 8a65bae..49b92bf 100644 --- a/src/windowobservers.cpp +++ b/src/windowobservers.cpp @@ -173,3 +173,18 @@ ModifierFlags modifiers_for_state(unsigned int state) } return modifiers; } + +ModifierFlags modifiers_for_key(unsigned int state) +{ + ModifierFlags modifiers = c_modifierNone; + if (state & GDK_CONTROL_MASK) { + modifiers |= c_modifierShift; + } + if (state & GDK_SHIFT_MASK) { + modifiers |= c_modifierControl; + } + if (state & GDK_MOD1_MASK) { + modifiers |= c_modifierAlt; + } + return modifiers; +} diff --git a/src/xywindow.cpp b/src/xywindow.cpp index d2934bc..ba2d7c5 100644 --- a/src/xywindow.cpp +++ b/src/xywindow.cpp @@ -740,7 +740,7 @@ bool XYWnd::chaseMouseMotion(int pointx, int pointy) // ============================================================================= // XYWnd class Shader *XYWnd::m_state_selected = 0; - +ModifierFlags modifiers_for_key(unsigned int state); void xy_update_xor_rectangle(XYWnd &self, rect_t area) { if (self.GetWidget().visible()) { @@ -756,7 +756,7 @@ gboolean xywnd_button_press(ui::Widget widget, GdkEventButton *event, XYWnd *xyw xywnd->ButtonState_onMouseDown(buttons_for_event_button(event)); xywnd->onMouseDown(WindowVector(event->x, event->y), button_for_button(event->button), - modifiers_for_state(event->state)); + modifiers_for_key(event->state)); } return FALSE; }