diff --git a/js/ui/altTab.js b/js/ui/altTab.js index 27aa2d7bf..dfdf9c3f9 100644 --- a/js/ui/altTab.js +++ b/js/ui/altTab.js @@ -448,6 +448,11 @@ const CyclerPopup = new Lang.Class({ let ws = window.get_workspace(); let activeWs = global.screen.get_active_workspace(); + if (window.minimized) { + Main.wm.skipNextEffect(window.get_compositor_private()); + window.unminimize(); + } + if (activeWs == ws) { Main.activateWindow(window); } else { diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 8b0398b3d..a3872af4d 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -683,6 +683,8 @@ const WindowManager = new Lang.Class({ this._dimmedWindows = []; + this._skippedActors = []; + this._allowedKeybindings = {}; this._isWorkspacePrepended = false; @@ -1035,6 +1037,10 @@ const WindowManager = new Lang.Class({ this._workspaceTracker.keepWorkspaceAlive(workspace, duration); }, + skipNextEffect: function(actor) { + this._skippedActors.push(actor); + }, + setCustomKeybindingHandler: function(name, modes, handler) { if (Meta.keybindings_set_custom_handler(name, handler)) this.allowKeybinding(name, modes); @@ -1061,6 +1067,9 @@ const WindowManager = new Lang.Class({ }, _shouldAnimateActor: function(actor, types) { + if (this._removeEffect(this._skippedActors, actor)) + return false; + if (!this._shouldAnimate()) return false;