screenShield: Only wake up screen when active

We treat wake up requests the same as user activity, as in general
the two behave the same: Turn on the screen and reset the idle watch
until the system becomes idle again.

The big exception is when the screen isn't locked yet. In that case
user activity should interrupt the automatic screen lock, but a
request to wake-up the screen (like showing a notification) should
not.

Address this by ignoring wake-up requests while the screen shield
isn't active, as we can expect the screen to still be turned on at
that point.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2413>
This commit is contained in:
Florian Müllner 2022-08-09 12:55:16 +02:00 committed by Marge Bot
parent 111e982eb7
commit 864606ae9d

View File

@ -515,6 +515,8 @@ var ScreenShield = class extends Signals.EventEmitter {
} }
_wakeUpScreen() { _wakeUpScreen() {
if (!this.active)
return; // already woken up, or not yet asleep
this._onUserBecameActive(); this._onUserBecameActive();
this.emit('wake-up-screen'); this.emit('wake-up-screen');
} }