[gnome-shell-extensions] Remove usage of MetaScreen



commit 6583eae6225039b6b711918eff3a7cd0d03a42ca
Author: Jonas Ådahl <jadahl gmail com>
Date:   Wed Jan 3 16:00:23 2018 +0800

    Remove usage of MetaScreen
    
    As of the libmutter API version 3 MetaScreen does no longer exist.
    Functionality that previously depended on MetaScreen has been moved
    elsewhere (e.g. MetaDisplay or MetaWorkspaceManager etc).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=759538

 extensions/alternate-tab/extension.js           |  2 +-
 extensions/auto-move-windows/extension.js       |  5 +-
 extensions/screenshot-window-sizer/extension.js |  2 +-
 extensions/window-list/extension.js             | 84 ++++++++++++++-----------
 extensions/windowsNavigator/extension.js        |  8 ++-
 extensions/workspace-indicator/extension.js     | 37 ++++++-----
 6 files changed, 81 insertions(+), 57 deletions(-)
---
diff --git a/extensions/alternate-tab/extension.js b/extensions/alternate-tab/extension.js
index 58f212a..3e912d8 100644
--- a/extensions/alternate-tab/extension.js
+++ b/extensions/alternate-tab/extension.js
@@ -31,7 +31,7 @@ function enable() {
         return injections['_keyPressHandler'].call(this, keysym, action);
     };
 
-    Main.wm._forcedWindowSwitcher = function(display, screen, window, binding) {
+    Main.wm._forcedWindowSwitcher = function(display, window, binding) {
         /* prevent a corner case where both popups show up at once */
         if (this._workspaceSwitcherPopup != null)
             this._workspaceSwitcherPopup.destroy();
diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js
index 5e4bd6d..cf417ec 100644
--- a/extensions/auto-move-windows/extension.js
+++ b/extensions/auto-move-windows/extension.js
@@ -79,9 +79,10 @@ class WindowMover {
             return;
 
         // ensure we have the required number of workspaces
-        for (let i = global.screen.n_workspaces; i <= workspaceNum; i++) {
+        let workspaceManager = global.workspace_manager;
+        for (let i = workspaceManager.n_workspaces; i <= workspaceNum; i++) {
             window.change_workspace_by_index(i - 1, false);
-            global.screen.append_new_workspace(false, 0);
+            workspaceManager.append_new_workspace(false, 0);
         }
 
         window.change_workspace_by_index(workspaceNum, false);
diff --git a/extensions/screenshot-window-sizer/extension.js b/extensions/screenshot-window-sizer/extension.js
index 681c30f..42abcb7 100644
--- a/extensions/screenshot-window-sizer/extension.js
+++ b/extensions/screenshot-window-sizer/extension.js
@@ -69,7 +69,7 @@ let SIZES = [
     [1600, 900]
 ];
 
-function cycleScreenshotSizes(display, screen, window, binding) {
+function cycleScreenshotSizes(display, window, binding) {
     // Probably this isn't useful with 5 sizes, but you can decrease instead
     // of increase by holding down shift.
     let modifiers = binding.get_modifiers();
diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js
index 716a324..96b252a 100644
--- a/extensions/window-list/extension.js
+++ b/extensions/window-list/extension.js
@@ -238,10 +238,10 @@ class BaseButton {
 
         if (this._perMonitor) {
             this._windowEnteredMonitorId =
-                global.screen.connect('window-entered-monitor',
+                global.display.connect('window-entered-monitor',
                     this._windowEnteredOrLeftMonitor.bind(this));
             this._windowLeftMonitorId =
-                global.screen.connect('window-left-monitor',
+                global.display.connect('window-left-monitor',
                     this._windowEnteredOrLeftMonitor.bind(this));
         }
     }
@@ -282,12 +282,12 @@ class BaseButton {
             this.actor.remove_style_class_name('focused');
     }
 
-    _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
+    _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
         throw new Error('Not implemented');
     }
 
     _isWindowVisible(window) {
-        let workspace = global.screen.get_active_workspace();
+        let workspace = global.workspace_manager.get_active_workspace();
 
         return !window.skip_taskbar &&
                window.located_on_workspace(workspace) &&
@@ -315,11 +315,11 @@ class BaseButton {
         global.window_manager.disconnect(this._switchWorkspaceId);
 
         if (this._windowEnteredMonitorId)
-            global.screen.disconnect(this._windowEnteredMonitorId);
+            global.display.disconnect(this._windowEnteredMonitorId);
         this._windowEnteredMonitorId = 0;
 
         if (this._windowLeftMonitorId)
-            global.screen.disconnect(this._windowLeftMonitorId);
+            global.display.disconnect(this._windowLeftMonitorId);
         this._windowLeftMonitorId = 0;
     }
 };
@@ -377,7 +377,7 @@ class WindowButton extends BaseButton {
             this.actor.remove_style_class_name('minimized');
     }
 
-    _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
+    _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
         if (monitorIndex == this._monitorIndex && metaWindow == this.metaWindow)
             this._updateVisibility();
     }
@@ -518,7 +518,7 @@ class AppButton extends BaseButton {
         this._updateStyle();
     }
 
-    _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
+    _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
         if (this._windowTracker.get_window_app(metaWindow) == this.app &&
             monitorIndex == this._monitorIndex) {
             this._updateVisibility();
@@ -529,7 +529,7 @@ class AppButton extends BaseButton {
     _updateVisibility() {
         if (!this._perMonitor) {
             // fast path: use ShellApp API to avoid iterating over all windows.
-            let workspace = global.screen.get_active_workspace();
+            let workspace = global.workspace_manager.get_active_workspace();
             this.actor.visible = this.app.is_on_workspace(workspace);
         } else {
             this.actor.visible = this.getWindowList().length >= 1;
@@ -652,7 +652,9 @@ class WorkspaceIndicator extends PanelMenu.Button {
                                         x_expand: true, y_expand: true });
         this.actor.add_actor(container);
 
-        this._currentWorkspace = global.screen.get_active_workspace().index();
+        let workspaceManager = global.workspace_manager;
+
+        this._currentWorkspace = workspaceManager.get_active_workspace().index();
         this.statusLabel = new St.Label({ text: this._getStatusText(),
                                           x_align: Clutter.ActorAlign.CENTER,
                                           y_align: Clutter.ActorAlign.CENTER });
@@ -660,11 +662,11 @@ class WorkspaceIndicator extends PanelMenu.Button {
 
         this.workspacesItems = [];
 
-        this._screenSignals = [];
-        this._screenSignals.push(global.screen.connect('notify::n-workspaces',
-                                                       this._updateMenu.bind(this)));
-        this._screenSignals.push(global.screen.connect_after('workspace-switched',
-                                                             this._updateIndicator.bind(this)));
+        this._workspaceManagerSignals = [];
+        this._workspaceManagerSignals.push(workspaceManager.connect('notify::n-workspaces',
+                                                                    this._updateMenu.bind(this)));
+        this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched',
+                                                                          this._updateIndicator.bind(this)));
 
         this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
         this._updateMenu();
@@ -676,8 +678,8 @@ class WorkspaceIndicator extends PanelMenu.Button {
     }
 
     destroy() {
-        for (let i = 0; i < this._screenSignals.length; i++)
-            global.screen.disconnect(this._screenSignals[i]);
+        for (let i = 0; i < this._workspaceManagerSignals.length; i++)
+            global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
 
         if (this._settingsChangedId) {
             this._settings.disconnect(this._settingsChangedId);
@@ -689,25 +691,28 @@ class WorkspaceIndicator extends PanelMenu.Button {
 
     _updateIndicator() {
         this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
-        this._currentWorkspace = global.screen.get_active_workspace().index();
+        this._currentWorkspace = global.workspace_manager.get_active_workspace().index();
         this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
 
         this.statusLabel.set_text(this._getStatusText());
     }
 
     _getStatusText() {
-        let current = global.screen.get_active_workspace().index();
-        let total = global.screen.n_workspaces;
+        let workspaceManager = global.workspace_manager;
+        let current = workspaceManager.get_active_workspace().index();
+        let total = workspaceManager.n_workspaces;
 
         return '%d / %d'.format(current + 1, total);
     }
 
     _updateMenu() {
+        let workspaceManager = global.workspace_manager;
+
         this.menu.removeAll();
         this.workspacesItems = [];
-        this._currentWorkspace = global.screen.get_active_workspace().index();
+        this._currentWorkspace = workspaceManager.get_active_workspace().index();
 
-        for(let i = 0; i < global.screen.n_workspaces; i++) {
+        for(let i = 0; i < workspaceManager.n_workspaces; i++) {
             let name = Meta.prefs_get_workspace_name(i);
             let item = new PopupMenu.PopupMenuItem(name);
             item.workspaceId = i;
@@ -727,8 +732,10 @@ class WorkspaceIndicator extends PanelMenu.Button {
     }
 
     _activate(index) {
-        if(index >= 0 && index < global.screen.n_workspaces) {
-            let metaWorkspace = global.screen.get_workspace_by_index(index);
+        let workspaceManager = global.workspace_manager;
+
+        if(index >= 0 && index < workspaceManager.n_workspaces) {
+            let metaWorkspace = workspaceManager.get_workspace_by_index(index);
             metaWorkspace.activate(global.get_current_time());
         }
     }
@@ -833,10 +840,12 @@ class WindowList {
                     this._updateKeyboardAnchor();
                 });
 
+        let workspaceManager = global.workspace_manager;
+
         this._workspaceSignals = new Map();
         this._nWorkspacesChangedId =
-            global.screen.connect('notify::n-workspaces',
-                                  this._onWorkspacesChanged.bind(this));
+            workspaceManager.connect('notify::n-workspaces',
+                                     this._onWorkspacesChanged.bind(this));
         this._onWorkspacesChanged();
 
         this._switchWorkspaceId =
@@ -856,7 +865,7 @@ class WindowList {
             });
 
         this._fullscreenChangedId =
-            global.screen.connect('in-fullscreen-changed', () => {
+            global.display.connect('in-fullscreen-changed', () => {
                 this._updateKeyboardAnchor();
             });
 
@@ -923,8 +932,9 @@ class WindowList {
     }
 
     _updateWorkspaceIndicatorVisibility() {
+        let workspaceManager = global.workspace_manager;
         let hasWorkspaces = this._dynamicWorkspacesSettings.get_boolean('dynamic-workspaces') ||
-                            global.screen.n_workspaces > 1;
+                            workspaceManager.n_workspaces > 1;
         let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor ||
                                   !this._workspaceSettings.get_boolean('workspaces-only-on-primary');
 
@@ -939,7 +949,7 @@ class WindowList {
         let [, childWidth] = children[0].get_preferred_width(-1);
         let spacing = this._windowList.layout_manager.spacing;
 
-        let workspace = global.screen.get_active_workspace();
+        let workspace = global.workspace_manager.get_active_workspace();
         let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
         if (this._perMonitor)
             windows = windows.filter(w => w.get_monitor() == this._monitor.index);
@@ -1079,9 +1089,11 @@ class WindowList {
     }
 
     _onWorkspacesChanged() {
-        let numWorkspaces = global.screen.n_workspaces;
+        let workspaceManager = global.workspace_manager;
+        let numWorkspaces = workspaceManager.n_workspaces;
+
         for (let i = 0; i < numWorkspaces; i++) {
-            let workspace = global.screen.get_workspace_by_index(i);
+            let workspace = workspaceManager.get_workspace_by_index(i);
             if (this._workspaceSignals.has(workspace))
                 continue;
 
@@ -1099,9 +1111,11 @@ class WindowList {
     }
 
     _disconnectWorkspaceSignals() {
-        let numWorkspaces = global.screen.n_workspaces;
+        let workspaceManager = global.workspace_manager;
+        let numWorkspaces = workspaceManager.n_workspaces;
+
         for (let i = 0; i < numWorkspaces; i++) {
-            let workspace = global.screen.get_workspace_by_index(i);
+            let workspace = workspaceManager.get_workspace_by_index(i);
             let signals = this._workspaceSignals.get(workspace);
             this._workspaceSignals.delete(workspace);
             workspace.disconnect(signals._windowAddedId);
@@ -1179,7 +1193,7 @@ class WindowList {
         Main.layoutManager.hideKeyboard();
 
         this._disconnectWorkspaceSignals();
-        global.screen.disconnect(this._nWorkspacesChangedId);
+        global.workspace_manager.disconnect(this._nWorkspacesChangedId);
         this._nWorkspacesChangedId = 0;
 
         global.window_manager.disconnect(this._switchWorkspaceId);
@@ -1189,7 +1203,7 @@ class WindowList {
         Main.overview.disconnect(this._overviewShowingId);
         Main.overview.disconnect(this._overviewHidingId);
 
-        global.screen.disconnect(this._fullscreenChangedId);
+        global.display.disconnect(this._fullscreenChangedId);
 
         Main.xdndHandler.disconnect(this._dragBeginId);
         Main.xdndHandler.disconnect(this._dragEndId);
diff --git a/extensions/windowsNavigator/extension.js b/extensions/windowsNavigator/extension.js
index 8c86f0f..7d49890 100644
--- a/extensions/windowsNavigator/extension.js
+++ b/extensions/windowsNavigator/extension.js
@@ -135,14 +135,16 @@ function enable() {
         if(Main.overview.viewSelector._activePage != Main.overview.viewSelector._workspacesPage)
             return false;
 
+        let workspaceManager = global.workspace_manager;
+
         if ((o.get_key_symbol() == Clutter.KEY_Alt_L ||
              o.get_key_symbol() == Clutter.KEY_Alt_R)
             && !this._pickWorkspace) {
             this._prevFocusActor = global.stage.get_key_focus();
             global.stage.set_key_focus(null);
-            this._active = global.screen.get_active_workspace_index();
+            this._active = workspaceManager.get_active_workspace_index();
             this._pickWindow = true;
-            this._workspaces[global.screen.get_active_workspace_index()].showWindowsTooltips();
+            this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
             return true;
         }
         if ((o.get_key_symbol() == Clutter.KEY_Control_L ||
@@ -166,7 +168,7 @@ function enable() {
             return true;
 
         if (this._pickWindow) {
-            if (this._active != global.screen.get_active_workspace_index()) {
+            if (this._active != workspaceManager.get_active_workspace_index()) {
                 this._hideTooltips();
                 return false;
             }
diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js
index ace1703..162345a 100644
--- a/extensions/workspace-indicator/extension.js
+++ b/extensions/workspace-indicator/extension.js
@@ -25,7 +25,9 @@ class WorkspaceIndicator extends PanelMenu.Button {
     constructor() {
         super(0.0, _("Workspace Indicator"));
 
-        this._currentWorkspace = global.screen.get_active_workspace().index();
+        let workspaceManager = global.workspace_manager;
+
+        this._currentWorkspace = workspaceManager.get_active_workspace().index();
         this.statusLabel = new St.Label({ y_align: Clutter.ActorAlign.CENTER,
                                           text: this._labelText() });
 
@@ -35,12 +37,13 @@ class WorkspaceIndicator extends PanelMenu.Button {
         this._workspaceSection = new PopupMenu.PopupMenuSection();
         this.menu.addMenuItem(this._workspaceSection);
 
-        this._screenSignals = [];
-        this._screenSignals.push(global.screen.connect_after('workspace-added',                              
                                this._createWorkspacesSection.bind(this)));
-        this._screenSignals.push(global.screen.connect_after('workspace-removed',
-                                                             this._createWorkspacesSection.bind(this)));
-        this._screenSignals.push(global.screen.connect_after('workspace-switched',
-                                                             this._updateIndicator.bind(this)));
+        this._workspaceManagerSignals = [];
+        this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-added',
+                                                                          
this._createWorkspacesSection.bind(this)));
+        this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-removed',
+                                                                          
this._createWorkspacesSection.bind(this)));
+        this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched',
+                                                                          this._updateIndicator.bind(this)));
 
         this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
         this._createWorkspacesSection();
@@ -55,8 +58,8 @@ class WorkspaceIndicator extends PanelMenu.Button {
     }
 
     destroy() {
-        for (let i = 0; i < this._screenSignals.length; i++)
-            global.screen.disconnect(this._screenSignals[i]);
+        for (let i = 0; i < this._workspaceManagerSignals.length; i++)
+            global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
 
         if (this._settingsChangedId) {
             this._settings.disconnect(this._settingsChangedId);
@@ -68,7 +71,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
 
     _updateIndicator() {
         this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
-        this._currentWorkspace = global.screen.get_active_workspace().index();
+        this._currentWorkspace = global.workspace_manager.get_active_workspace().index();
         this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
 
         this.statusLabel.set_text(this._labelText());
@@ -83,12 +86,14 @@ class WorkspaceIndicator extends PanelMenu.Button {
     }
 
     _createWorkspacesSection() {
+        let workspaceManager = global.workspace_manager;
+
         this._workspaceSection.removeAll();
         this.workspacesItems = [];
-        this._currentWorkspace = global.screen.get_active_workspace().index();
+        this._currentWorkspace = workspaceManager.get_active_workspace().index();
 
         let i = 0;
-        for(; i < global.screen.n_workspaces; i++) {
+        for(; i < workspaceManager.n_workspaces; i++) {
             this.workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
             this._workspaceSection.addMenuItem(this.workspacesItems[i]);
             this.workspacesItems[i].workspaceId = i;
@@ -106,8 +111,10 @@ class WorkspaceIndicator extends PanelMenu.Button {
     }
 
     _activate(index) {
-        if(index >= 0 && index <  global.screen.n_workspaces) {
-            let metaWorkspace = global.screen.get_workspace_by_index(index);
+        let workspaceManager = global.workspace_manager;
+
+        if(index >= 0 && index <  workspaceManager.n_workspaces) {
+            let metaWorkspace = workspaceManager.get_workspace_by_index(index);
             metaWorkspace.activate(global.get_current_time());
         }
     }
@@ -123,7 +130,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
             return;
         }
 
-        let newIndex = global.screen.get_active_workspace().index() + diff;
+        let newIndex = global.workspace_manager.get_active_workspace().index() + diff;
         this._activate(newIndex);
     }
 };


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]