[gnome-shell/gnome-3-38] workspace: Handle child not being present in the window slots array



commit 95f5237d478385860ac969a4a8076aa06e9880b8
Author: Jonas Dreßler <verdre v0yd nl>
Date:   Sun Nov 22 00:10:56 2020 +0100

    workspace: Handle child not being present in the window slots array
    
    Adding children to the WorkspaceLayout without calling addPreview() is
    not supported, so let's log an error in case that happened.
    
    We also have to allocate that child an empty ClutterActorBox, otherwise
    Clutter will complain loudly.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1481>
    
    (cherry picked from commit a314c05fec3de0472341991e1ef5190e086643fc)

 js/ui/workspace.js | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index ee6e198b1e..ab49e64123 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -595,8 +595,11 @@ var WorkspaceLayout = GObject.registerClass({
 
             // The fifth element in the slot array is the WindowPreview
             const index = this._windowSlots.findIndex(s => s[4] === child);
-            if (index === -1)
+            if (index === -1) {
+                log('Couldn\'t find child %s in window slots'.format(child));
+                child.allocate(childBox);
                 continue;
+            }
 
             const [x, y, width, height] = this._windowSlots[index];
             const windowInfo = this._windows.get(child);


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