From e98e5d0d6232da905bfec8023fc8ef557893b77d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 31 May 2016 17:12:20 +0200 Subject: [PATCH] alternateTab: Adjust to gnome-shell changes The code de-duplication in commit bf8d30603e57b broke the extension, fix by duplicating the code here now :-( (It's not really that bad though ...) https://bugzilla.gnome.org/show_bug.cgi?id=767077 --- extensions/alternate-tab/extension.js | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/extensions/alternate-tab/extension.js b/extensions/alternate-tab/extension.js index 79fde0a..7a5ee17 100644 --- a/extensions/alternate-tab/extension.js +++ b/extensions/alternate-tab/extension.js @@ -7,6 +7,7 @@ const Shell = imports.gi.Shell; const AltTab = imports.ui.altTab; const Main = imports.ui.main; +const WindowManager = imports.ui.windowManager; let injections = {}; @@ -33,20 +34,32 @@ function enable() { return injections['_keyPressHandler'].call(this, keysym, action); }; - setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._startWindowSwitcher)); - setKeybinding('switch-group', Lang.bind(Main.wm, Main.wm._startWindowSwitcher)); - setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._startWindowSwitcher)); - setKeybinding('switch-group-backward', Lang.bind(Main.wm, Main.wm._startWindowSwitcher)); + Main.wm._forcedWindowSwitcher = function(display, screen, window, binding) { + /* prevent a corner case where both popups show up at once */ + if (this._workspaceSwitcherPopup != null) + this._workspaceSwitcherPopup.destroy(); + + let tabPopup = new AltTab.WindowSwitcherPopup(); + + if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask())) + tabPopup.destroy(); + }; + + setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._forcedWindowSwitcher)); + setKeybinding('switch-group', Lang.bind(Main.wm, Main.wm._forcedWindowSwitcher)); + setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._forcedWindowSwitcher)); + setKeybinding('switch-group-backward', Lang.bind(Main.wm, Main.wm._forcedWindowSwitcher)); } function disable() { var prop; - setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); - setKeybinding('switch-group', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); - setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); - setKeybinding('switch-group-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); + setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._startSwitcher)); + setKeybinding('switch-group', Lang.bind(Main.wm, Main.wm._startSwitcher)); + setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._startSwitcher)); + setKeybinding('switch-group-backward', Lang.bind(Main.wm, Main.wm._startSwitcher)); for (prop in injections) AltTab.WindowSwitcherPopup.prototype[prop] = injections[prop]; + delete Main.wm._forcedWindowSwitcher; } -- 2.7.4