From 2415b4f005f97a48fd3a8eaa59194e86145a843b Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 19 Feb 2025 15:50:10 +0000 Subject: [PATCH] =?UTF-8?q?loginManager:=20Expose=20systemd=E2=80=99s=20Pr?= =?UTF-8?q?eparingForSleep=20property?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will be used in upcoming commits to save the screen time state just before the system goes to sleep. Signed-off-by: Philip Withnall Helps: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8185 Part-of: --- js/misc/loginManager.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/js/misc/loginManager.js b/js/misc/loginManager.js index d928ff022..191b5334f 100644 --- a/js/misc/loginManager.js +++ b/js/misc/loginManager.js @@ -227,12 +227,29 @@ class LoginManagerSystemd extends Signals.EventEmitter { this.emit('prepare-for-sleep', aboutToSuspend); } + /** + * Whether the machine is preparing to sleep. + * + * This is true between paired emissions of `prepare-for-sleep`. + * + * @type {boolean} + */ + get preparingForSleep() { + return this._proxy.PreparingForSleep; + } + _sessionRemoved(proxy, sender, [sessionId]) { this.emit('session-removed', sessionId); } } class LoginManagerDummy extends Signals.EventEmitter { + constructor() { + super(); + + this._preparingForSleep = false; + } + getCurrentUserProxy() { // we could return a DummyUser object that fakes whatever callers // expect, but just never settling the promise should be safer @@ -272,10 +289,16 @@ class LoginManagerDummy extends Signals.EventEmitter { } suspend() { + this._preparingForSleep = true; this.emit('prepare-for-sleep', true); + this._preparingForSleep = false; this.emit('prepare-for-sleep', false); } + get preparingForSleep() { + return this._preparingForSleep; + } + /* eslint-disable-next-line require-await */ async inhibit() { return null;