altTab: Skip unminimize effect when cycling to a window
Similar to windows on another workspace, selecting a minimized window doesn't look quite right - the selected window disappears, then animates back in. Fix this by adding support for skipping the next effect to the wm and use it to bypass the unminimize animation. https://bugzilla.gnome.org/show_bug.cgi?id=771536
This commit is contained in:
parent
a029a35050
commit
becd29c50a
@ -448,6 +448,11 @@ const CyclerPopup = new Lang.Class({
|
|||||||
let ws = window.get_workspace();
|
let ws = window.get_workspace();
|
||||||
let activeWs = global.screen.get_active_workspace();
|
let activeWs = global.screen.get_active_workspace();
|
||||||
|
|
||||||
|
if (window.minimized) {
|
||||||
|
Main.wm.skipNextEffect(window.get_compositor_private());
|
||||||
|
window.unminimize();
|
||||||
|
}
|
||||||
|
|
||||||
if (activeWs == ws) {
|
if (activeWs == ws) {
|
||||||
Main.activateWindow(window);
|
Main.activateWindow(window);
|
||||||
} else {
|
} else {
|
||||||
|
@ -683,6 +683,8 @@ const WindowManager = new Lang.Class({
|
|||||||
|
|
||||||
this._dimmedWindows = [];
|
this._dimmedWindows = [];
|
||||||
|
|
||||||
|
this._skippedActors = [];
|
||||||
|
|
||||||
this._allowedKeybindings = {};
|
this._allowedKeybindings = {};
|
||||||
|
|
||||||
this._isWorkspacePrepended = false;
|
this._isWorkspacePrepended = false;
|
||||||
@ -1035,6 +1037,10 @@ const WindowManager = new Lang.Class({
|
|||||||
this._workspaceTracker.keepWorkspaceAlive(workspace, duration);
|
this._workspaceTracker.keepWorkspaceAlive(workspace, duration);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
skipNextEffect: function(actor) {
|
||||||
|
this._skippedActors.push(actor);
|
||||||
|
},
|
||||||
|
|
||||||
setCustomKeybindingHandler: function(name, modes, handler) {
|
setCustomKeybindingHandler: function(name, modes, handler) {
|
||||||
if (Meta.keybindings_set_custom_handler(name, handler))
|
if (Meta.keybindings_set_custom_handler(name, handler))
|
||||||
this.allowKeybinding(name, modes);
|
this.allowKeybinding(name, modes);
|
||||||
@ -1061,6 +1067,9 @@ const WindowManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_shouldAnimateActor: function(actor, types) {
|
_shouldAnimateActor: function(actor, types) {
|
||||||
|
if (this._removeEffect(this._skippedActors, actor))
|
||||||
|
return false;
|
||||||
|
|
||||||
if (!this._shouldAnimate())
|
if (!this._shouldAnimate())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user