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
This commit is contained in:
Florian Müllner 2011-12-12 20:04:20 +01:00
parent 68321d9bf4
commit 8809673a74

View File

@ -1799,6 +1799,8 @@ event_callback (XEvent *event,
if (display->grab_op == META_GRAB_OP_COMPOSITOR) if (display->grab_op == META_GRAB_OP_COMPOSITOR)
break; break;
display->overlay_key_only_pressed = FALSE;
if (event->xbutton.button == 4 || event->xbutton.button == 5) if (event->xbutton.button == 4 || event->xbutton.button == 5)
/* Scrollwheel event, do nothing and deliver event to compositor below */ /* Scrollwheel event, do nothing and deliver event to compositor below */
break; break;
@ -1996,6 +1998,8 @@ event_callback (XEvent *event,
if (display->grab_op == META_GRAB_OP_COMPOSITOR) if (display->grab_op == META_GRAB_OP_COMPOSITOR)
break; break;
display->overlay_key_only_pressed = FALSE;
if (display->grab_window == window && if (display->grab_window == window &&
grab_op_is_mouse (display->grab_op)) grab_op_is_mouse (display->grab_op))
meta_window_handle_mouse_grab_op_event (window, event); meta_window_handle_mouse_grab_op_event (window, event);