[gnome-shell] windowManager: Use new reorder_workspace() API
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] windowManager: Use new reorder_workspace() API
- Date: Tue, 9 Jul 2019 13:13:36 +0000 (UTC)
commit ff9bb5399b1d22fceaf00c9fc8e0058f24af96cc
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Jul 9 00:11:06 2019 +0200
windowManager: Use new reorder_workspace() API
With the new Mutter API, inserting a workspace at a particular position
becomes as easy as creating the workspace and moving it to the desired
index.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/620
js/ui/windowManager.js | 38 +++-----------------------------------
1 file changed, 3 insertions(+), 35 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 6ff952da7..9322569f7 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -1203,41 +1203,9 @@ var WindowManager = class {
if (!Meta.prefs_get_dynamic_workspaces())
return;
- workspaceManager.append_new_workspace(false, global.get_current_time());
-
- let windows = global.get_window_actors().map(a => a.meta_window);
-
- // To create a new workspace, we slide all the windows on workspaces
- // below us to the next workspace, leaving a blank workspace for us
- // to recycle.
- windows.forEach(window => {
- // If the window is attached to an ancestor, we don't need/want
- // to move it
- if (window.get_transient_for() != null)
- return;
- // Same for OR windows
- if (window.is_override_redirect())
- return;
- // Sticky windows don't need moving, in fact moving would
- // unstick them
- if (window.on_all_workspaces)
- return;
- // Windows on workspaces below pos don't need moving
- let index = window.get_workspace().index();
- if (index < pos)
- 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 = workspaceManager.get_active_workspace_index();
- if (activeIndex >= pos) {
- let newWs = workspaceManager.get_workspace_by_index(activeIndex + 1);
- this._blockAnimations = true;
- newWs.activate(global.get_current_time());
- this._blockAnimations = false;
- }
+ let newWs = workspaceManager.append_new_workspace(
+ false, global.get_current_time());
+ workspaceManager.reorder_workspace(newWs, pos);
}
keepWorkspaceAlive(workspace, duration) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]