From 8b9c8ddb1ecac972fad7aad7e3033839f6fc027e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 8 Apr 2019 06:40:13 +0200 Subject: [PATCH] windowManager: Don't move sticky windows when inserting workspace Inserting a workspace is implemented by appending a new workspace, then shifting all windows after the "new" workspace up. This has an unintended side effect on sticky windows, as changing its workspace will unstick it. Fix this by excluding sticky windows - there's little point in moving them anyway, given that they should be on all workspaces (including the original workspace and the target one). https://gitlab.gnome.org/GNOME/gnome-shell/issues/1151 --- js/ui/windowManager.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index e8bd0a690..09eeac105 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -1218,6 +1218,10 @@ var WindowManager = class { // 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)