[gnome-shell] altTab: Skip unminimize effect when cycling to a window
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] altTab: Skip unminimize effect when cycling to a window
- Date: Sun, 18 Sep 2016 09:03:19 +0000 (UTC)
commit becd29c50af4a912b6ead3bf1e7f6d7a93d4bb87
Author: Florian Müllner <fmuellner gnome org>
Date: Thu Sep 15 17:41:52 2016 +0200
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
js/ui/altTab.js | 5 +++++
js/ui/windowManager.js | 9 +++++++++
2 files changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/altTab.js b/js/ui/altTab.js
index 27aa2d7..dfdf9c3 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 8b0398b..a3872af 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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]