Make the workspaces view a temporary "widget", rather than having it always

around

svn path=/trunk/; revision=124
This commit is contained in:
Dan Winship 2008-12-15 20:48:59 +00:00
parent 98860733bb
commit 249e65ee30
2 changed files with 14 additions and 22 deletions

View File

@ -121,9 +121,6 @@ Sideshow.prototype = {
show: function() {
this._appDisplay.show();
},
hide: function() {
}
};
Signals.addSignalMethods(Sideshow.prototype);
@ -155,11 +152,6 @@ Overlay.prototype = {
// TODO - recalculate everything when desktop size changes
this._recalculateSize();
this._workspaces = new Workspaces.Workspaces(
this._workspaceGridX, this._workspaceGridY,
this._workspaceGridWidth, this._workspaceGridHeight);
this._group.add_actor(this._workspaces._group);
this._sideshow = new Sideshow(this._group, this._workspaceGridX - 10);
this._sideshow.connect('activated', function(sideshow) {
// TODO - have some sort of animation/effect while
@ -192,8 +184,12 @@ Overlay.prototype = {
this._recalculateSize();
this._sideshow.show();
this._workspaces.show();
this._workspaces._group.raise_top();
this._workspaces = new Workspaces.Workspaces(
this._workspaceGridX, this._workspaceGridY,
this._workspaceGridWidth, this._workspaceGridHeight);
this._group.add_actor(this._workspaces.actor);
this._workspaces.actor.raise_top();
// All the the actors in the window group are completely obscured,
// hiding the group holding them while the overlay is displayed greatly
@ -211,7 +207,6 @@ Overlay.prototype = {
return;
this._workspaces.hide();
this._sideshow.hide();
// Dummy tween, just waiting for the workspace animation
Tweener.addTween(this,
@ -226,9 +221,10 @@ Overlay.prototype = {
this.visible = false;
global.window_group.show();
this._group.lower_bottom();
this._group.hide();
this._workspaces.hideDone();
this._workspaces.destroy();
this._workspaces = null;
},
_deactivate : function() {

View File

@ -35,19 +35,15 @@ function Workspaces(x, y, width, height) {
Workspaces.prototype = {
_init : function(x, y, width, height) {
this._group = new Clutter.Group();
this.actor = new Clutter.Group();
this._x = x;
this._y = y;
this._width = width;
this._height = height;
this._workspaces = [];
},
show : function() {
let global = Shell.Global.get();
let windows = global.get_windows();
let activeWorkspace = global.screen.get_active_workspace_index();
@ -57,7 +53,7 @@ Workspaces.prototype = {
this._workspaces = [];
for (let w = 0; w < global.screen.n_workspaces; w++) {
this._workspaces[w] = new Clutter.Group();
this._group.add_actor(this._workspaces[w]);
this.actor.add_actor(this._workspaces[w]);
}
this._createDesktopActors(windows);
@ -147,7 +143,7 @@ Workspaces.prototype = {
}
},
hideDone : function() {
destroy : function() {
for (let w = 0; w < this._workspaces.length; w++) {
this._workspaces[w].destroy();
}