backgroundManager: Always emit 'loaded' signal
As backgrounds are cached, it is possible that we never emit the
'loaded' signal added in commit f386103bc1
. We are relying on the
signal though, so do the same as Background and emit the signal
from an idle if the background was already loaded.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1371
This commit is contained in:
parent
4e0492c517
commit
5c550daecb
@ -765,11 +765,19 @@ var BackgroundManager = class BackgroundManager {
|
|||||||
this._updateBackgroundActor();
|
this._updateBackgroundActor();
|
||||||
});
|
});
|
||||||
|
|
||||||
let loadedSignalId = background.connect('loaded', () => {
|
let loadedSignalId;
|
||||||
|
if (background.isLoaded) {
|
||||||
|
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
|
||||||
|
this.emit('loaded');
|
||||||
|
return GLib.SOURCE_REMOVE;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
loadedSignalId = background.connect('loaded', () => {
|
||||||
background.disconnect(loadedSignalId);
|
background.disconnect(loadedSignalId);
|
||||||
loadedSignalId = null;
|
loadedSignalId = null;
|
||||||
this.emit('loaded');
|
this.emit('loaded');
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
backgroundActor.connect('destroy', () => {
|
backgroundActor.connect('destroy', () => {
|
||||||
if (changeSignalId)
|
if (changeSignalId)
|
||||||
|
Loading…
Reference in New Issue
Block a user