summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorMarco Trevisan (TreviƱo) <mail@3v1n0.net>2014-12-02 16:27:28 +0100
committerWilliam Hua <william@attente.ca>2015-02-05 17:26:17 +0100
commit9e2eb5d2f6c15ccca688194ed8c810c4f88ccdbe (patch)
tree881b94a3dfda691b0b465b0eda9144e72e3686fa /gdk
parent7d4066de41209b26759dac6f6ac214a633bcd992 (diff)
downloadgtk+-9e2eb5d2f6c15ccca688194ed8c810c4f88ccdbe.tar.gz
mir: compute the modifiers using the saved button_state on key events
Diffstat (limited to 'gdk')
-rw-r--r--gdk/mir/gdkmireventsource.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdk/mir/gdkmireventsource.c b/gdk/mir/gdkmireventsource.c
index 701f394be2..13f09bbd49 100644
--- a/gdk/mir/gdkmireventsource.c
+++ b/gdk/mir/gdkmireventsource.c
@@ -258,10 +258,13 @@ get_modifier_state (unsigned int modifiers, unsigned int button_state)
static void
handle_key_event (GdkWindow *window, const MirKeyEvent *event)
{
+ GdkMirWindowImpl *impl = GDK_MIR_WINDOW_IMPL (window->impl);
guint modifier_state;
+ MirMotionButton button_state;
gboolean is_modifier = FALSE;
- modifier_state = get_modifier_state (event->modifiers, 0); // FIXME: Need to track button state
+ _gdk_mir_window_impl_get_cursor_state (impl, NULL, NULL, NULL, &button_state);
+ modifier_state = get_modifier_state (event->modifiers, button_state);
switch (event->action)
{