appDisplay: Allow passing callback to AppFolderDialog.popdown()

Next commit will allow removing icons from the folder, and we want to
do that effectively after the dialog pops down.

Add an optional callback to AppFolderDialog.popdown().

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447
This commit is contained in:
Georges Basile Stavracas Neto 2020-09-24 16:31:00 -03:00 committed by Florian Müllner
parent 33bd038af2
commit 1acbdcc9b3

View File

@ -2093,6 +2093,8 @@ var AppFolderDialog = GObject.registerClass({
this._sourceMappedId = 0; this._sourceMappedId = 0;
this._popdownTimeoutId = 0; this._popdownTimeoutId = 0;
this._needsZoomAndFade = false; this._needsZoomAndFade = false;
this._popdownCallbacks = [];
} }
_addFolderNameEntry() { _addFolderNameEntry() {
@ -2297,6 +2299,9 @@ var AppFolderDialog = GObject.registerClass({
opacity: 255, opacity: 255,
}); });
this.hide(); this.hide();
this._popdownCallbacks.forEach(func => func());
this._popdownCallbacks = [];
}, },
}); });
@ -2477,7 +2482,16 @@ var AppFolderDialog = GObject.registerClass({
this.emit('open-state-changed', true); this.emit('open-state-changed', true);
} }
popdown() { popdown(callback) {
// Either call the callback right away, or wait for the zoom out
// animation to finish
if (callback) {
if (this.visible)
this._popdownCallbacks.push(callback);
else
callback();
}
if (!this._isOpen) if (!this._isOpen)
return; return;