[gnome-shell] windowManager: Don't remove the active workspace
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] windowManager: Don't remove the active workspace
- Date: Wed, 19 Feb 2014 20:53:38 +0000 (UTC)
commit 2631f03108423f8b40d3e45dfc3e2a81790c7990
Author: Florian Müllner <fmuellner gnome org>
Date: Mon Sep 30 19:59:09 2013 +0200
windowManager: Don't remove the active workspace
Currently workspaces (except for the last one) are removed when
they become empty. While we do have special treatment for the
case where the currently active workspace is removed, we just
move directly without animations to the last workspace to avoid
ending up on a "random" workspace. However this behavior is still
a bit confusing, so keep the workspace around instead until the
user decides to move to another one.
https://bugzilla.gnome.org/show_bug.cgi?id=709064
js/ui/windowManager.js | 14 ++------------
1 files changed, 2 insertions(+), 12 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 4c7cac4..cf80290 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -191,6 +191,7 @@ const WorkspaceTracker = new Lang.Class({
tracker.connect('startup-sequence-changed', Lang.bind(this, this._queueCheckWorkspaces));
global.screen.connect('notify::n-workspaces', Lang.bind(this, this._nWorkspacesChanged));
+ global.window_manager.connect('switch-workspace', Lang.bind(this, this._queueCheckWorkspaces));
global.screen.connect('window-entered-monitor', Lang.bind(this, this._windowEnteredMonitor));
global.screen.connect('window-left-monitor', Lang.bind(this, this._windowLeftMonitor));
@@ -249,13 +250,7 @@ const WorkspaceTracker = new Lang.Class({
}
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
- let removingCurrentWorkspace = (emptyWorkspaces[activeWorkspaceIndex] &&
- activeWorkspaceIndex < emptyWorkspaces.length - 1);
-
- if (removingCurrentWorkspace) {
- // "Merge" the empty workspace we are removing with the one at the end
- this._wm.blockAnimations();
- }
+ emptyWorkspaces[activeWorkspaceIndex] = false;
// Delete other empty workspaces; do it from the end to avoid index changes
for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
@@ -263,11 +258,6 @@ const WorkspaceTracker = new Lang.Class({
global.screen.remove_workspace(this._workspaces[i], global.get_current_time());
}
- if (removingCurrentWorkspace) {
- global.screen.get_workspace_by_index(global.screen.n_workspaces -
1).activate(global.get_current_time());
- this._wm.unblockAnimations();
- }
-
this._checkWorkspacesId = 0;
return false;
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]