windowManager: Add mechanism to block animations
Add an API to allow blocking animations in situations where they aren't desireable. https://bugzilla.gnome.org/show_bug.cgi?id=642188
This commit is contained in:
parent
3944df1bd2
commit
76d788a186
@ -93,6 +93,8 @@ WindowManager.prototype = {
|
|||||||
|
|
||||||
this._dimmedWindows = [];
|
this._dimmedWindows = [];
|
||||||
|
|
||||||
|
this._animationBlockCount = 0;
|
||||||
|
|
||||||
this._switchData = null;
|
this._switchData = null;
|
||||||
this._shellwm.connect('kill-switch-workspace', Lang.bind(this, this._switchWorkspaceDone));
|
this._shellwm.connect('kill-switch-workspace', Lang.bind(this, this._switchWorkspaceDone));
|
||||||
this._shellwm.connect('kill-window-effects', Lang.bind(this, function (shellwm, actor) {
|
this._shellwm.connect('kill-window-effects', Lang.bind(this, function (shellwm, actor) {
|
||||||
@ -139,8 +141,16 @@ WindowManager.prototype = {
|
|||||||
this._shellwm.connect('keybinding::' + keybinding, handler);
|
this._shellwm.connect('keybinding::' + keybinding, handler);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
blockAnimations: function() {
|
||||||
|
this._animationBlockCount++;
|
||||||
|
},
|
||||||
|
|
||||||
|
unblockAnimations: function() {
|
||||||
|
this._animationBlockCount = Math.max(0, this._animationBlockCount - 1);
|
||||||
|
},
|
||||||
|
|
||||||
_shouldAnimate : function(actor) {
|
_shouldAnimate : function(actor) {
|
||||||
if (Main.overview.visible)
|
if (Main.overview.visible || this._animationsBlocked > 0)
|
||||||
return false;
|
return false;
|
||||||
if (actor && (actor.meta_window.get_window_type() != Meta.WindowType.NORMAL))
|
if (actor && (actor.meta_window.get_window_type() != Meta.WindowType.NORMAL))
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user