[gnome-shell] workspace: Don't store strategy on layout object



commit a4bf44734d8e8f5e3efc852db794bf6bfbc2c918
Author: Jonas Dreßler <verdre v0yd nl>
Date:   Mon Feb 1 11:40:50 2021 +0100

    workspace: Don't store strategy on layout object
    
    We're making the layout object fully owned by the layout strategy, so
    store the current strategy somewhere else, that is as a private property
    of the class.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1617>

 js/ui/workspace.js | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index 6a8e999b21..383c1e939d 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -487,7 +487,7 @@ var WorkspaceLayout = GObject.registerClass({
 
         // We look for the largest scale that allows us to fit the
         // largest row/tallest column on the workspace.
-        const strategy = new UnalignedLayoutStrategy({
+        this._layoutStrategy = new UnalignedLayoutStrategy({
             monitor: Main.layoutManager.monitors[this._monitorIndex],
             rowSpacing,
             columnSpacing,
@@ -507,12 +507,11 @@ var WorkspaceLayout = GObject.registerClass({
             if (numColumns === lastNumColumns)
                 break;
 
-            const layout = strategy.computeLayout(this._sortedWindows, {
+            const layout = this._layoutStrategy.computeLayout(this._sortedWindows, {
                 numRows,
             });
-            layout.strategy = strategy;
 
-            const [scale, space] = strategy.computeScaleAndSpace(layout, area);
+            const [scale, space] = this._layoutStrategy.computeScaleAndSpace(layout, area);
 
             if (!this._isBetterScaleAndSpace(lastScale, lastSpace, scale, space))
                 break;
@@ -537,7 +536,7 @@ var WorkspaceLayout = GObject.registerClass({
             height: parseInt(containerBox.get_height()),
         };
 
-        return this._layout.strategy.computeWindowSlots(this._layout, availArea);
+        return this._layoutStrategy.computeWindowSlots(this._layout, availArea);
     }
 
     _getAdjustedWorkarea(container) {


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