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



commit a314c05fec3de0472341991e1ef5190e086643fc
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>

 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]