diff --git a/js/misc/loginManager.js b/js/misc/loginManager.js index 6f9564996..fe3719244 100644 --- a/js/misc/loginManager.js +++ b/js/misc/loginManager.js @@ -101,6 +101,8 @@ class LoginManagerSystemd extends Signals.EventEmitter { '/org/freedesktop/login1/user/self'); this._proxy.connectSignal('PrepareForSleep', this._prepareForSleep.bind(this)); + this._proxy.connectSignal('SessionRemoved', + this._sessionRemoved.bind(this)); } async getCurrentSessionProxy() { @@ -189,6 +191,10 @@ class LoginManagerSystemd extends Signals.EventEmitter { } } + getSession(objectPath) { + return new SystemdLoginSession(Gio.DBus.system, 'org.freedesktop.login1', objectPath); + } + suspend() { this._proxy.SuspendAsync(true); } @@ -206,6 +212,10 @@ class LoginManagerSystemd extends Signals.EventEmitter { _prepareForSleep(proxy, sender, [aboutToSuspend]) { this.emit('prepare-for-sleep', aboutToSuspend); } + + _sessionRemoved(proxy, sender, [sessionId]) { + this.emit('session-removed', sessionId); + } } class LoginManagerDummy extends Signals.EventEmitter { @@ -237,6 +247,10 @@ class LoginManagerDummy extends Signals.EventEmitter { return new Promise(resolve => resolve([])); } + getSession(_objectPath) { + return null; + } + suspend() { this.emit('prepare-for-sleep', true); this.emit('prepare-for-sleep', false);