[Differential] [Request, 263 lines] D2252: [ksmserver] Create a dedicated binary from KSMShutdownDlg
graesslin (Martin Gräßlin)
noreply at phabricator.kde.org
Fri Jul 22 08:10:52 UTC 2016
graesslin created this revision.
graesslin added a reviewer: Plasma.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY
The idea behind this change is to have a dedicated binary for the
logout dialog. As a follow up ksmserver needs to be adjusted to invoke
the helper binary instead of interacting with KSMShutdownDlg directly.
This will bring quite some improvements to the logout architecture:
- ksmserver doesn't need to run a QEventLoop to wait for the dialog to finish
- it becomes easier to test changes for the logout dialog, one doesn't need to restart the session any more
- ksmserver becomes better guarded against problems in the UI layer (e.g. OpenGL errors)
- the binary can be changed to support Wayland
- ksmserver becomes better guarded against problems with updating Qt while the session is running
This change only introduces the creation of the binary. A new sub-dir
"logout-greeter" is added which creates a ksmserver-logout-greeter.
The greeter defines various command line arguments for the options which
are being passed to the KSMShutdownDlg.
If the dialog returns an exit value of 0 it is interpreted as accepted.
A return value != 0 indicates that the user rejected the logout.
The dialog also passes additional values back. In particular the logout
method might be changed and returned back to ksmserver. To support this
operation a pipe filedescriptor can be passed to the greeter. If present
the greeter will write the numerical value of KWorkspace::ShutdownType
into the pipe on success.
To indicate how the interaction - especially the reading from pipe -
works, the change comes with an additional test binary. It forwards
the command line arguments and creates the pipe to pass to the greeter
and reads it back in a helper thread to be non-blocking. This approach is
inspired from kwin_wayland's starting of Xwayland.
TEST PLAN
See the new test binary
REPOSITORY
rPLASMAWORKSPACE Plasma Workspace
BRANCH
ksmserver-logout-greeter
REVISION DETAIL
https://phabricator.kde.org/D2252
AFFECTED FILES
ksmserver/CMakeLists.txt
ksmserver/config-ksmserver.h.cmake
ksmserver/logout-greeter/CMakeLists.txt
ksmserver/logout-greeter/main.cpp
ksmserver/logout-greeter/tests/CMakeLists.txt
ksmserver/logout-greeter/tests/main.cpp
ksmserver/shutdowndlg.cpp
ksmserver/shutdowndlg.h
EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/
To: graesslin, #plasma
Cc: plasma-devel, jensreuterberg, abetts, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160722/ae8fa1f7/attachment-0001.html>
More information about the Plasma-devel
mailing list