dbusServices/screensaver: Disable auto-shutdown

For the screensaver service, it is quite normal that a consumer only
subscribes to the "ActiveChanged" signal without calling any methods.

The result is that we don't know about the consumer, and shut down
the service anyway after we hit the timeout.

If this happens, we break functionality like gnome-settings-daemon's
screen blanking on idle.

Fix this by simply disabling auto-shutdown for the service, which
also reflects the expectation that the screen saver service is
always running in a GNOME session.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4114

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1824>
This commit is contained in:
Florian Müllner 2021-04-27 21:07:05 +02:00 committed by Marge Bot
parent 724291de7f
commit dedfdb6d0b

View File

@ -13,6 +13,8 @@ var ScreenSaverService = class extends ServiceImplementation {
constructor() { constructor() {
super(ScreenSaverIface, '/org/gnome/ScreenSaver'); super(ScreenSaverIface, '/org/gnome/ScreenSaver');
this._autoShutdown = false;
this._proxy = new ScreenSaverProxy(Gio.DBus.session, this._proxy = new ScreenSaverProxy(Gio.DBus.session,
'org.gnome.Shell.ScreenShield', 'org.gnome.Shell.ScreenShield',
'/org/gnome/ScreenSaver', '/org/gnome/ScreenSaver',