gnome-shell/js
Sebastian Keller fb313033ea screenShield: Don't unnecessarily close or recreate inhibitors
ScreenShield::_syncInhibitor() was closing (and recreating) the
inhibitor everytime it was called, even if no change was needed.
This gets called in various places, including on property changes in
the login1 dbus object. These happen by the time logind already started
suspending at which point new inhibitors can no longer be created. It is
only waiting for existing inhibitors to be closed, so closing the
inhibitor without a new inhibitor will cause the suspending to proceed
immediately if no other inhibitors are present. This can also happen
before the lock screen is shown, which will then complete after resume.

Fix this by keeping track of the expected inhibition state and only
create or close inhibitors if there was a change to that.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3736

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1927>
2021-08-16 00:28:52 +00:00
..
dbusServices dbusServices/screencast: Handle pipeline failures gracefully 2021-06-09 15:21:35 +00:00
gdm gdm: Remove pending fingerprint verification failure 2021-04-28 17:23:01 +00:00
misc extensionUtils: Add gettext convenience helpers 2021-08-14 18:45:25 +00:00
perf perf: Add basic run tests 2020-08-12 15:43:39 +00:00
portalHelper js: Require Soup 2.4 2021-02-26 12:28:21 +00:00
ui screenShield: Don't unnecessarily close or recreate inhibitors 2021-08-16 00:28:52 +00:00
js-resources.gresource.xml status/powerProfiles: Add power mode selection 2021-08-02 16:41:06 +02:00
meson.build extensions-app: Move Extensions app to new subproject 2020-03-27 23:33:30 +00:00
portal-resources.gresource.xml js: Remove unused files from resources 2020-03-09 13:18:48 +00:00