[gnome-shell] windowManager: Update active workspace after inserting a new one
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] windowManager: Update active workspace after inserting a new one
- Date: Fri, 16 Jan 2015 18:31:07 +0000 (UTC)
commit 0bfaa5c6a3eadec879afb84a95272fb8b148222c
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Jan 16 00:32:27 2015 +0100
windowManager: Update active workspace after inserting a new one
New workspaces are inserted by shifting all windows on workspaces
below the insertion position down. As a result, when the new
workspace is inserted before the active one, we end up with
the illusion of a workspace switch. Instead, activate the workspace
on which the windows from the active one ended up.
https://bugzilla.gnome.org/show_bug.cgi?id=665764
js/ui/windowManager.js | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index b450376..88acd45 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -913,6 +913,16 @@ const WindowManager = new Lang.Class({
return;
window.change_workspace_by_index(index + 1, true);
});
+
+ // If the new workspace was inserted before the active workspace,
+ // activate the workspace to which its windows went
+ let activeIndex = global.screen.get_active_workspace_index();
+ if (activeIndex >= pos) {
+ let newWs = global.screen.get_workspace_by_index(activeIndex + 1);
+ this._blockAnimations = true;
+ newWs.activate(global.get_current_time());
+ this._blockAnimations = false;
+ }
},
@@ -945,7 +955,7 @@ const WindowManager = new Lang.Class({
},
_shouldAnimate: function() {
- return !Main.overview.visible;
+ return !(Main.overview.visible || this._blockAnimations);
},
_shouldAnimateActor: function(actor, types) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]