windowPreview: Handle case where window already is part of layout

We sometimes add dialogs multiple times to the WindowPreview, for
example for modal dialogs we receive both the "window-added" and the
"window-entered-monitor" signal, which means we call
WindowPreview.addDialog() twice.

We handle that fine already in the WindowPreviewLayout and return NULL
in case the window already was added, so simply handle that NULL return
value and bail out of WindowPreview.addDialog() in this case.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1482
This commit is contained in:
Jonas Dreßler 2020-10-24 20:51:56 +02:00 committed by Florian Müllner
parent d318bf539d
commit 0b2430128a

View File

@ -500,6 +500,8 @@ var WindowPreview = GObject.registerClass({
_addWindow(metaWindow) { _addWindow(metaWindow) {
const clone = this._windowContainer.layout_manager.addWindow(metaWindow); const clone = this._windowContainer.layout_manager.addWindow(metaWindow);
if (!clone)
return;
// We expect this to be used for all interaction rather than // We expect this to be used for all interaction rather than
// the ClutterClone; as the former is reactive and the latter // the ClutterClone; as the former is reactive and the latter