workspace: Initialize overview windows correctly in constructor

Currently overview windows added in workspace constructor lack monitoring
the skip-taskbar property. All other windows added after this have
this monitoring.

This uses existing code to correctly add the signal and removes all redundant
code.

It also insures all transients are handled correctly on initialization using
the existing code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3386>
(cherry picked from commit 8af8a27d91)
This commit is contained in:
Sundeep Mediratta 2024-06-23 10:12:51 -04:00 committed by Florian Müllner
parent a9c843b8b3
commit d1cc16d718
No known key found for this signature in database

View file

@ -1089,16 +1089,11 @@ class Workspace extends St.Widget {
this.connect('destroy', this._onDestroy.bind(this));
this._skipTaskbarSignals = new Map();
const windows = global.get_window_actors().map(a => a.meta_window)
.filter(this._isMyWindow, this);
// Create clones for windows that should be
// visible in the Overview
this._windows = [];
for (let i = 0; i < windows.length; i++) {
if (this._isOverviewWindow(windows[i]))
this._addWindowClone(windows[i]);
}
this._layoutFrozenId = 0;
// DND requires this to be set
this._delegate = this;
// Track window changes, but let the window tracker process them first
this.metaWorkspace?.connectObject(
@ -1109,10 +1104,10 @@ class Workspace extends St.Widget {
'window-entered-monitor', this._windowEnteredMonitor.bind(this), GObject.ConnectFlags.AFTER,
'window-left-monitor', this._windowLeftMonitor.bind(this), GObject.ConnectFlags.AFTER,
this);
this._layoutFrozenId = 0;
// DND requires this to be set
this._delegate = this;
// Create clones for windows that should be
// visible in the Overview
global.get_window_actors().map(a => this._doAddWindow(a.meta_window));
}
_shouldLeaveOverview() {