[gnome-shell] windowManager: Use generic filter mechanism for all keybindings
- From: Florian MÃllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] windowManager: Use generic filter mechanism for all keybindings
- Date: Sat, 17 Nov 2012 01:02:05 +0000 (UTC)
commit 76d776245b71dc8056d9a91d0e79979ed3af3ef3
Author: Florian MÃllner <fmuellner gnome org>
Date: Sat Aug 11 06:34:53 2012 +0200
windowManager: Use generic filter mechanism for all keybindings
With the new flexible system in place, there's no point explicitly
hardcoding some built-in keybindings; just use the generic mechanism
for everything.
https://bugzilla.gnome.org/show_bug.cgi?id=688202
js/ui/main.js | 14 +++++-
js/ui/windowManager.js | 105 ++++++++++++++++++++++++++----------------------
2 files changed, 68 insertions(+), 51 deletions(-)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index 75ab45b..d9ffda7 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -83,7 +83,17 @@ let _overridesSettings = null;
let background = null;
function _sessionUpdated() {
- Meta.keybindings_set_custom_handler('panel-run-dialog', sessionMode.hasRunDialog ? openRunDialog : null);
+ wm.setCustomKeybindingHandler('panel-main-menu',
+ KeybindingMode.NORMAL |
+ KeybindingMode.OVERVIEW,
+ sessionMode.hasOverview ? Lang.bind(overview, overview.toggle) : null);
+ wm.allowKeybinding('overlay-key', KeybindingMode.NORMAL |
+ KeybindingMode.OVERVIEW);
+
+ wm.setCustomKeybindingHandler('panel-run-dialog',
+ KeybindingMode.NORMAL |
+ KeybindingMode.OVERVIEW,
+ sessionMode.hasRunDialog ? openRunDialog : null);
if (sessionMode.isGreeter)
screenShield.showDialog();
}
@@ -169,9 +179,7 @@ function start() {
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
false, -1, 1);
- Meta.keybindings_set_custom_handler('panel-main-menu', Lang.bind(overview, overview.toggle));
global.display.connect('overlay-key', Lang.bind(overview, overview.toggle));
-
sessionMode.connect('update', _sessionUpdated);
_sessionUpdated();
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index ddebde5..4e3467d 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -104,36 +104,63 @@ const WindowManager = new Lang.Class({
this._shellwm.connect('filter-keybinding', Lang.bind(this, this._filterKeybinding));
this._workspaceSwitcherPopup = null;
- Meta.keybindings_set_custom_handler('switch-to-workspace-left',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('switch-to-workspace-right',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('switch-to-workspace-up',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('switch-to-workspace-down',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('move-to-workspace-left',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('move-to-workspace-right',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('move-to-workspace-up',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('move-to-workspace-down',
- Lang.bind(this, this._showWorkspaceSwitcher));
- Meta.keybindings_set_custom_handler('switch-windows',
- Lang.bind(this, this._startAppSwitcher));
- Meta.keybindings_set_custom_handler('switch-group',
- Lang.bind(this, this._startAppSwitcher));
- Meta.keybindings_set_custom_handler('switch-windows-backward',
- Lang.bind(this, this._startAppSwitcher));
- Meta.keybindings_set_custom_handler('switch-group-backward',
- Lang.bind(this, this._startAppSwitcher));
- Meta.keybindings_set_custom_handler('switch-panels',
- Lang.bind(this, this._startA11ySwitcher));
- global.display.add_keybinding('open-application-menu',
- new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }),
- Meta.KeyBindingFlags.NONE,
- Lang.bind(this, this._openAppMenu));
+ this.setCustomKeybindingHandler('switch-to-workspace-left',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('switch-to-workspace-right',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('switch-to-workspace-up',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('switch-to-workspace-down',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('move-to-workspace-left',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('move-to-workspace-right',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('move-to-workspace-up',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('move-to-workspace-down',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW,
+ Lang.bind(this, this._showWorkspaceSwitcher));
+ this.setCustomKeybindingHandler('switch-windows',
+ Main.KeybindingMode.NORMAL,
+ Lang.bind(this, this._startAppSwitcher));
+ this.setCustomKeybindingHandler('switch-group',
+ Main.KeybindingMode.NORMAL,
+ Lang.bind(this, this._startAppSwitcher));
+ this.setCustomKeybindingHandler('switch-windows-backward',
+ Main.KeybindingMode.NORMAL,
+ Lang.bind(this, this._startAppSwitcher));
+ this.setCustomKeybindingHandler('switch-group-backward',
+ Main.KeybindingMode.NORMAL,
+ Lang.bind(this, this._startAppSwitcher));
+ this.setCustomKeybindingHandler('switch-panels',
+ Main.KeybindingMode.NORMAL |
+ Main.KeybindingMode.OVERVIEW |
+ Main.KeybindingMode.LOCK_SCREEN |
+ Main.KeybindingMode.UNLOCK_SCREEN |
+ Main.KeybindingMode.LOGIN_SCREEN,
+ Lang.bind(this, this._startA11ySwitcher));
+
+ this.addKeybinding('open-application-menu',
+ new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }),
+ Meta.KeyBindingFlags.NONE,
+ Main.KeybindingMode.NORMAL,
+ Lang.bind(this, this._openAppMenu));
Main.overview.connect('showing', Lang.bind(this, function() {
for (let i = 0; i < this._dimmedWindows.length; i++)
@@ -451,24 +478,6 @@ const WindowManager = new Lang.Class({
if (Main.modalCount > (Main.overview.visible ? 1 : 0))
return true;
}
- let action = Meta.prefs_get_keybinding_action(binding.get_name());
- switch (action) {
- // left/right would effectively act as synonyms for up/down if we enabled them;
- // but that could be considered confusing; we also disable them in the main view.
- //
- // case Meta.KeyBindingAction.WORKSPACE_LEFT:
- // case Meta.KeyBindingAction.WORKSPACE_RIGHT:
- case Meta.KeyBindingAction.WORKSPACE_UP:
- case Meta.KeyBindingAction.WORKSPACE_DOWN:
- return !Main.sessionMode.hasWorkspaces;
-
- case Meta.KeyBindingAction.PANEL_RUN_DIALOG:
- case Meta.KeyBindingAction.COMMAND_2:
- case Meta.KeyBindingAction.PANEL_MAIN_MENU:
- case Meta.KeyBindingAction.OVERLAY_KEY:
- case Meta.KeyBindingAction.SWITCH_PANELS:
- return false;
- }
// There's little sense in implementing a keybinding in mutter and
// not having it work in NORMAL mode; handle this case generically
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]