workspaces-view: Simplify handling of removed workspaces
Workspaces used to contain the desktop background, so when a workspace was removed, we animated its actor to an off-screen position before destroying it. As the background has been removed a while ago, we can destroy the actor directly. https://bugzilla.gnome.org/show_bug.cgi?id=645031
This commit is contained in:
parent
0ae1556b94
commit
45c1a9eafb
@ -641,16 +641,6 @@ Workspace.prototype = {
|
|||||||
return this._windows.length == 0;
|
return this._windows.length == 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* setReactive:
|
|
||||||
* @reactive: %true iff the workspace should be reactive
|
|
||||||
*
|
|
||||||
* Set the workspace (desktop) reactive
|
|
||||||
**/
|
|
||||||
setReactive: function(reactive) {
|
|
||||||
this.actor.reactive = reactive;
|
|
||||||
},
|
|
||||||
|
|
||||||
// Only use this for n <= 20 say
|
// Only use this for n <= 20 say
|
||||||
_factorial: function(n) {
|
_factorial: function(n) {
|
||||||
let result = 1;
|
let result = 1;
|
||||||
|
@ -51,7 +51,6 @@ WorkspacesView.prototype = {
|
|||||||
this._y = 0;
|
this._y = 0;
|
||||||
this._workspaceRatioSpacing = 0;
|
this._workspaceRatioSpacing = 0;
|
||||||
this._spacing = 0;
|
this._spacing = 0;
|
||||||
this._lostWorkspaces = [];
|
|
||||||
this._animating = false; // tweening
|
this._animating = false; // tweening
|
||||||
this._scrolling = false; // swipe-scrolling
|
this._scrolling = false; // swipe-scrolling
|
||||||
this._animatingScroll = false; // programatically updating the adjustment
|
this._animatingScroll = false; // programatically updating the adjustment
|
||||||
@ -224,27 +223,6 @@ WorkspacesView.prototype = {
|
|||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let l = 0; l < this._lostWorkspaces.length; l++) {
|
|
||||||
let workspace = this._lostWorkspaces[l];
|
|
||||||
|
|
||||||
Tweener.removeTweens(workspace.actor);
|
|
||||||
|
|
||||||
workspace.actor.show();
|
|
||||||
workspace.hideWindowsOverlays();
|
|
||||||
|
|
||||||
if (showAnimation) {
|
|
||||||
Tweener.addTween(workspace.actor,
|
|
||||||
{ y: workspace.x,
|
|
||||||
time: WORKSPACE_SWITCH_TIME,
|
|
||||||
transition: 'easeOutQuad',
|
|
||||||
onComplete: Lang.bind(this,
|
|
||||||
this._cleanWorkspaces)
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
this._cleanWorkspaces();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateVisibility: function() {
|
_updateVisibility: function() {
|
||||||
@ -265,17 +243,6 @@ WorkspacesView.prototype = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_cleanWorkspaces: function() {
|
|
||||||
if (this._lostWorkspaces.length == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (let l = 0; l < this._lostWorkspaces.length; l++)
|
|
||||||
this._lostWorkspaces[l].destroy();
|
|
||||||
this._lostWorkspaces = [];
|
|
||||||
|
|
||||||
this._updateWorkspaceActors(false);
|
|
||||||
},
|
|
||||||
|
|
||||||
_updateScrollAdjustment: function(index, showAnimation) {
|
_updateScrollAdjustment: function(index, showAnimation) {
|
||||||
if (this._scrolling)
|
if (this._scrolling)
|
||||||
return;
|
return;
|
||||||
@ -298,12 +265,9 @@ WorkspacesView.prototype = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updateWorkspaces: function(oldNumWorkspaces, newNumWorkspaces, lostWorkspaces) {
|
updateWorkspaces: function(oldNumWorkspaces, newNumWorkspaces) {
|
||||||
let active = global.screen.get_active_workspace_index();
|
let active = global.screen.get_active_workspace_index();
|
||||||
|
|
||||||
for (let l = 0; l < lostWorkspaces.length; l++)
|
|
||||||
lostWorkspaces[l].disconnectAll();
|
|
||||||
|
|
||||||
Tweener.addTween(this._scrollAdjustment,
|
Tweener.addTween(this._scrollAdjustment,
|
||||||
{ upper: newNumWorkspaces,
|
{ upper: newNumWorkspaces,
|
||||||
time: WORKSPACE_SWITCH_TIME,
|
time: WORKSPACE_SWITCH_TIME,
|
||||||
@ -315,8 +279,6 @@ WorkspacesView.prototype = {
|
|||||||
this.actor.add_actor(this._workspaces[w].actor);
|
this.actor.add_actor(this._workspaces[w].actor);
|
||||||
|
|
||||||
this._updateWorkspaceActors(false);
|
this._updateWorkspaceActors(false);
|
||||||
} else {
|
|
||||||
this._lostWorkspaces = lostWorkspaces;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._scrollToActive(true);
|
this._scrollToActive(true);
|
||||||
@ -846,17 +808,16 @@ WorkspacesDisplay.prototype = {
|
|||||||
lostWorkspaces = this._workspaces.splice(removedIndex,
|
lostWorkspaces = this._workspaces.splice(removedIndex,
|
||||||
removedNum);
|
removedNum);
|
||||||
|
|
||||||
// Don't let the user try to select this workspace as it's
|
for (let l = 0; l < lostWorkspaces.length; l++) {
|
||||||
// making its exit.
|
lostWorkspaces[l].disconnectAll();
|
||||||
for (let l = 0; l < lostWorkspaces.length; l++)
|
lostWorkspaces[l].destroy();
|
||||||
lostWorkspaces[l].setReactive(false);
|
}
|
||||||
|
|
||||||
this._thumbnailsBox.removeThumbmails(removedIndex, removedNum);
|
this._thumbnailsBox.removeThumbmails(removedIndex, removedNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.workspacesView.updateWorkspaces(oldNumWorkspaces,
|
this.workspacesView.updateWorkspaces(oldNumWorkspaces,
|
||||||
newNumWorkspaces,
|
newNumWorkspaces);
|
||||||
lostWorkspaces);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateZoom : function() {
|
_updateZoom : function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user