[gnome-shell/workspace-thumbnails: 6/14] Move restacking handling from WorkspacesView to WorkspacesDisplay
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/workspace-thumbnails: 6/14] Move restacking handling from WorkspacesView to WorkspacesDisplay
- Date: Thu, 3 Feb 2011 04:50:29 +0000 (UTC)
commit 277cff3013414252461af93933105da8bbe44546
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Sun Jan 30 20:44:05 2011 -0500
Move restacking handling from WorkspacesView to WorkspacesDisplay
Moving the base tracking of restacking to WorkspacesDisplay will allow
us to use it to update stacking in the workspace thumbnails as well as
in the main workspaces.
https://bugzilla.gnome.org/show_bug.cgi?id=640996
js/ui/workspacesView.js | 41 +++++++++++++++++++++++++++--------------
1 files changed, 27 insertions(+), 14 deletions(-)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 9f72803..afc00e5 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -77,7 +77,6 @@ WorkspacesView.prototype = {
this._overviewShowingId =
Main.overview.connect('showing',
Lang.bind(this, function() {
- this._onRestacked();
for (let w = 0; w < this._workspaces.length; w++)
this._workspaces[w].zoomToOverview();
}));
@@ -99,9 +98,6 @@ WorkspacesView.prototype = {
this._switchWorkspaceNotifyId =
global.window_manager.connect('switch-workspace',
Lang.bind(this, this._activeWorkspaceChanged));
- this._restackedNotifyId =
- global.screen.connect('restacked',
- Lang.bind(this, this._onRestacked));
this._itemDragBeginId = Main.overview.connect('item-drag-begin',
Lang.bind(this, this._dragBegin));
@@ -207,15 +203,7 @@ WorkspacesView.prototype = {
return this._workspaces[0].scale;
},
- _onRestacked: function() {
- let stack = global.get_window_actors();
- let stackIndices = {};
-
- for (let i = 0; i < stack.length; i++) {
- // Use the stable sequence for an integer to use as a hash key
- stackIndices[stack[i].get_meta_window().get_stable_sequence()] = i;
- }
-
+ syncStacking: function(stackIndices) {
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].syncStacking(stackIndices);
},
@@ -502,7 +490,6 @@ WorkspacesView.prototype = {
this._scrollAdjustment.run_dispose();
Main.overview.disconnect(this._overviewShowingId);
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
- global.screen.disconnect(this._restackedNotifyId);
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
@@ -892,6 +879,12 @@ WorkspacesDisplay.prototype = {
this._nWorkspacesNotifyId =
global.screen.connect('notify::n-workspaces',
Lang.bind(this, this._workspacesChanged));
+
+ this._restackedNotifyId =
+ global.screen.connect('restacked',
+ Lang.bind(this, this._onRestacked));
+
+ this._onRestacked();
},
hide: function() {
@@ -899,6 +892,12 @@ WorkspacesDisplay.prototype = {
if (this._nWorkspacesNotifyId > 0)
global.screen.disconnect(this._nWorkspacesNotifyId);
+
+ if (this._restackedNotifyId > 0){
+ global.screen.disconnect(this._restackedNotifyId);
+ this._restackedNotifyId = 0;
+ }
+
this.workspacesView.destroy();
this.workspacesView = null;
for (let w = 0; w < this._workspaces.length; w++) {
@@ -907,6 +906,20 @@ WorkspacesDisplay.prototype = {
}
},
+ _onRestacked: function() {
+ let stack = global.get_window_actors();
+ let stackIndices = {};
+
+ for (let i = 0; i < stack.length; i++) {
+ // Use the stable sequence for an integer to use as a hash key
+ stackIndices[stack[i].get_meta_window().get_stable_sequence()] = i;
+ }
+
+ this.workspacesView.syncStacking(stackIndices);
+ for (let i = 0; i < this._workspaceThumbnails.length; i++)
+ this._workspaceThumbnails[i].syncStacking(stackIndices);
+ },
+
_workspacesChanged: function() {
let oldNumWorkspaces = this._workspaces.length;
let newNumWorkspaces = global.screen.n_workspaces;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]