graesslin created this revision.
graesslin added reviewers: bshah, broulik.
Herald added a project: Plasma.
Herald added a subscriber: plasma-devel.

REVISION SUMMARY

KScreenLocker checks whether power management is inhibited on idle
time out. So far this used a sync and blocking dbus call.

This change makes the check async. KScreenLocker connects to the
InhibitionsChanged signal provided by powerdevil and queries the
current state in an async way each time the signal gets emitted.

When KScreenLocker hits an idle connection it has the knowledge wheter
power management is inhibited and does not need to perform the blocking
call any more.

It's important for KScreenLocker to not have blocking calls as it's
used inside the Wayland compositor and can by that easily create
dead-lock situations (e.g. PowerDevil waiting for the Wayland compositor
and the compositor waiting for the reply).


REPOSITORY
rKSCREENLOCKER KScreenLocker

BRANCH
async-check-fdo-inhibition

REVISION DETAIL
https://phabricator.kde.org/D884

AFFECTED FILES
CMakeLists.txt
ksldapp.cpp
ksldapp.h
powermanagement_inhibition.cpp
powermanagement_inhibition.h

EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/

To: graesslin, bshah, broulik
Cc: plasma-devel