Blob Blame History Raw
From aa5dbcf4cd7caa9ff1ba2c2c8b65f007314f521a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 14 Mar 2017 17:04:36 +0100
Subject: [PATCH] windowMenu: Bring back workspaces submenu for static
 workspaces

When the titlebar context menu was moved to the shell, the submenu for
moving to a specific workspace was intentionally left out; some people
are quite attached to it though, so bring it back when static workspaces
are used.
---
 js/ui/windowMenu.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/js/ui/windowMenu.js b/js/ui/windowMenu.js
index f0e564b7e..8c97a1eec 100644
--- a/js/ui/windowMenu.js
+++ b/js/ui/windowMenu.js
@@ -123,6 +123,22 @@ var WindowMenu = new Lang.Class({
                         window.change_workspace(workspace.get_neighbor(dir));
                     });
                 }
+
+                let nWorkspaces = global.screen.n_workspaces;
+                if (nWorkspaces > 1 && !Meta.prefs_get_dynamic_workspaces()) {
+                    item = new PopupMenu.PopupSubMenuMenuItem(_("Move to another workspace"));
+                    this.addMenuItem(item);
+
+                    let currentIndex = global.screen.get_active_workspace_index();
+                    for (let i = 0; i < nWorkspaces; i++) {
+                        let index = i;
+                        let name = Meta.prefs_get_workspace_name(i);
+                        let subitem = item.menu.addAction(name, () => {
+                            window.change_workspace_by_index(index, false);
+                        });
+                        subitem.setSensitive(currentIndex != i);
+                    }
+                }
             }
         }
 
-- 
2.17.1