mirror of
https://github.com/brl/mutter.git
synced 2025-07-12 21:37:17 +00:00
Fix custom-alt-tabs for single-handling of key events
The changes to enforce single handling of all key events were breaking custom-alt-tab keypress handlers, since that code was assuming that key event would get to process_tab_grab(), and then maybe to process_event() and then to the plugin's xevent_filter to detect a key release. We centeralize all of this handling into process_tab_grab() and either - Invoke a custom handler for the key press - Select the current window on modifier release by calling a new pseudo-binding "tab_popup_select" - Cancel the grab on an unbound key by calling a new pseudo-binding "tab_popup_cancel" http://bugzilla.gnome.org/show_bug.cgi?id=590754
This commit is contained in:
@ -186,6 +186,18 @@ keybind (cycle_panels_backward, handle_cycle, META_TAB_LIST_DOCKS,
|
||||
_("Move backward between panels and the desktop immediately"))
|
||||
|
||||
/***********************************/
|
||||
|
||||
/* These two are special pseudo-bindings that are provided for allowing
|
||||
* custom handlers, but will never be bound to a key. While a tab
|
||||
* grab is in effect, they are invoked for releasing the primary modifier
|
||||
* or pressing some unbound key, respectively.
|
||||
*/
|
||||
keybind (tab_popup_select, handle_tab_popup_select, 0, 0, NULL,
|
||||
"Select window from tab popup")
|
||||
keybind (tab_popup_cancel, handle_tab_popup_cancel, 0, 0, NULL,
|
||||
"Cancel tab popup")
|
||||
|
||||
/***********************************/
|
||||
|
||||
keybind (show_desktop, handle_show_desktop, 0, 0, "<Control><Alt>d",
|
||||
_("Hide all normal windows and set focus to the desktop"))
|
||||
|
Reference in New Issue
Block a user