[gnome-shell-extensions] windowsNavigator: Adjust to gnome-shell changes



commit cf3690a434ffd5d8ed8f7447a8e25550b78a89c8
Author: Florian Müllner <fmuellner gnome org>
Date:   Sat Mar 6 14:19:25 2021 +0100

    windowsNavigator: Adjust to gnome-shell changes
    
    Unsurprisingly, the big overview changes in gnome-shell broke the
    extension. Make the necessary adjustments to get it working again:
     - changed constructor parameters for Workspace/WorkspacesView
     - overall state handling done by adjustment
     - window preview layout changes
    
    https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/296
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/163>

 extensions/windowsNavigator/extension.js | 38 ++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 17 deletions(-)
---
diff --git a/extensions/windowsNavigator/extension.js b/extensions/windowsNavigator/extension.js
index e4513d8..0ea9645 100644
--- a/extensions/windowsNavigator/extension.js
+++ b/extensions/windowsNavigator/extension.js
@@ -3,6 +3,7 @@
 const { Clutter, Graphene, GObject, St } = imports.gi;
 
 const Main = imports.ui.main;
+const OverviewControls = imports.ui.overviewControls;
 const Workspace = imports.ui.workspace;
 const WorkspacesView = imports.ui.workspacesView;
 
@@ -10,10 +11,10 @@ const WINDOW_SLOT = 4;
 
 var MyWorkspace = GObject.registerClass(
 class MyWorkspace extends Workspace.Workspace {
-    _init(metaWorkspace, monitorIndex) {
-        super._init(metaWorkspace, monitorIndex);
+    _init(...args) {
+        super._init(...args);
 
-        if (metaWorkspace && metaWorkspace.index() < 9) {
+        if (this.metaWorkspace && this.metaWorkspace.index() < 9) {
             this._tip = new St.Label({
                 style_class: 'extension-windowsNavigator-window-tooltip',
                 visible: false,
@@ -49,21 +50,24 @@ class MyWorkspace extends Workspace.Workspace {
     }
 
     getWindowWithTooltip(id) {
-        const slot = this.layout_manager._windowSlots[id - 1];
+        const { layoutManager } = this._container;
+        const slot = layoutManager._windowSlots[id - 1];
         return slot ? slot[WINDOW_SLOT].metaWindow : null;
     }
 
     showWindowsTooltips() {
-        for (let i = 0; i < this.layout_manager._windowSlots.length; i++) {
-            if (this.layout_manager._windowSlots[i])
-                this.layout_manager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
+        const { layoutManager } = this._container;
+        for (let i = 0; i < layoutManager._windowSlots.length; i++) {
+            if (layoutManager._windowSlots[i])
+                layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
         }
     }
 
     hideWindowsTooltips() {
-        for (let i in this.layout_manager._windowSlots) {
-            if (this.layout_manager._windowSlots[i])
-                this.layout_manager._windowSlots[i][WINDOW_SLOT].hideTooltip();
+        const { layoutManager } = this._container;
+        for (let i in layoutManager._windowSlots) {
+            if (layoutManager._windowSlots[i])
+                layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip();
         }
     }
 
@@ -80,17 +84,17 @@ class MyWorkspace extends Workspace.Workspace {
             });
 
             this._text.add_constraint(new Clutter.BindConstraint({
-                source: this._borderCenter,
+                source: this._windowContainer,
                 coordinate: Clutter.BindCoordinate.POSITION,
             }));
             this._text.add_constraint(new Clutter.AlignConstraint({
-                source: this._borderCenter,
+                source: this._windowContainer,
                 align_axis: Clutter.AlignAxis.X_AXIS,
                 pivot_point: new Graphene.Point({ x: 0.5, y: -1 }),
                 factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
             }));
             this._text.add_constraint(new Clutter.AlignConstraint({
-                source: this._borderCenter,
+                source: this._windowContainer,
                 align_axis: Clutter.AlignAxis.Y_AXIS,
                 pivot_point: new Graphene.Point({ x: -1, y: 0.5 }),
                 factor: 0,
@@ -115,8 +119,8 @@ class MyWorkspace extends Workspace.Workspace {
 
 var MyWorkspacesView = GObject.registerClass(
 class MyWorkspacesView extends WorkspacesView.WorkspacesView {
-    _init(width, height, x, y, workspaces) {
-        super._init(width, height, x, y, workspaces);
+    _init(...args) {
+        super._init(...args);
 
         this._pickWorkspace = false;
         this._pickWindow = false;
@@ -160,8 +164,8 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView {
     }
 
     _onKeyPress(s, o) {
-        let { viewSelector } = Main.overview;
-        if (viewSelector._activePage !== viewSelector._workspacesPage)
+        const { ControlsState } = OverviewControls;
+        if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
             return false;
 
         let workspaceManager = global.workspace_manager;


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