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:
Florian Müllner 2011-06-01 04:23:12 +02:00
parent 0ae1556b94
commit 45c1a9eafb
2 changed files with 6 additions and 55 deletions

View File

@ -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;

View File

@ -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() {