From 8809673a7456da060f47d4d7a2ab2272d3b5bc57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 12 Dec 2011 20:04:20 +0100 Subject: [PATCH] display: Cancel overlay key presses on mouse button events Currently pressing the overlay key only triggers the overview if no other key is pressed between KeyPress and KeyRelease. Extend this logic to pointer events, so that KeyPress + ButtonPress actions are treated explicitly different from "pure" overlay key presses. In particular, this change allows to re-use the overlay key as mouse button modifier. https://bugzilla.gnome.org/show_bug.cgi?id=662476 --- src/core/display.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/display.c b/src/core/display.c index 8f1fe3cc0..676cd566f 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -1799,6 +1799,8 @@ event_callback (XEvent *event, if (display->grab_op == META_GRAB_OP_COMPOSITOR) break; + display->overlay_key_only_pressed = FALSE; + if (event->xbutton.button == 4 || event->xbutton.button == 5) /* Scrollwheel event, do nothing and deliver event to compositor below */ break; @@ -1996,6 +1998,8 @@ event_callback (XEvent *event, if (display->grab_op == META_GRAB_OP_COMPOSITOR) break; + display->overlay_key_only_pressed = FALSE; + if (display->grab_window == window && grab_op_is_mouse (display->grab_op)) meta_window_handle_mouse_grab_op_event (window, event);