From ad277a563c43c8fa3e156fb77cb20a2e339bf4c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 26 Apr 2013 15:48:36 +0200 Subject: [PATCH] panel: Add keybinding mode for top bar popups and use it Allow some keybindings to still work while a top bar menu is open by assigning it a keybinding mode. https://bugzilla.gnome.org/show_bug.cgi?id=698938 --- js/ui/panel.js | 2 +- src/shell-keybinding-modes.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/js/ui/panel.js b/js/ui/panel.js index 303e24169..8c3c48497 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -923,7 +923,7 @@ const Panel = new Lang.Class({ this.statusArea = {}; - this.menuManager = new PopupMenu.PopupMenuManager(this); + this.menuManager = new PopupMenu.PopupMenuManager(this, { keybindingMode: Shell.KeyBindingMode.TOPBAR_POPUP }); this._leftBox = new St.BoxLayout({ name: 'panelLeft' }); this.actor.add_actor(this._leftBox); diff --git a/src/shell-keybinding-modes.h b/src/shell-keybinding-modes.h index c9ba8dab9..bc0b9b32b 100644 --- a/src/shell-keybinding-modes.h +++ b/src/shell-keybinding-modes.h @@ -15,6 +15,8 @@ * @SHELL_KEYBINDING_MODE_SYSTEM_MODAL: allow keybinding when a system modal * dialog (e.g. authentification or session dialogs) is open * @SHELL_KEYBINDING_MODE_LOOKING_GLASS: allow keybinding in looking glass + * @SHELL_KEYBINDING_MODE_TOPBAR_POPUP: allow keybinding while a top bar menu + * is open * @SHELL_KEYBINDING_MODE_ALL: always allow keybinding * * Controls in which GNOME Shell states a keybinding should be handled. @@ -29,6 +31,7 @@ typedef enum { SHELL_KEYBINDING_MODE_MESSAGE_TRAY = 1 << 5, SHELL_KEYBINDING_MODE_SYSTEM_MODAL = 1 << 6, SHELL_KEYBINDING_MODE_LOOKING_GLASS = 1 << 7, + SHELL_KEYBINDING_MODE_TOPBAR_POPUP = 1 << 8, SHELL_KEYBINDING_MODE_ALL = ~0, } ShellKeyBindingMode;