The Layer Shell Qt library is updated to match its API more closely to
the protocol. It is now possible, or rather required if the behavior
should not change, to specify a desired output for a LayerShell window.
This matches what kwin's effects have always been searching for. It only
used to appear to work as "ksmserver ksmserver" was checked in previous
versions.
BUG: 444898
BUG: 444899
Since both the splash screen and the logout greeter have an exclusive
zone of 0, they may be resized to accommodate for other layer shell
surfaces, for example panels.
We need to set an exclusive zone of -1 to ensure that the splash screen
and the logout greeter fill the entire screen.
This also makes use of ksmserver a lot more optional. Requests to logout
go directly to org.plasma.Shutdown.
Effort has been put into keeping the QML context property usage API
compatiable even though the current code is really a mess.
When the flag to reboot into BIOS/UEFI setup is set, show a hint on the logout screen.
For simplicity and to avoid the layout from shifting, and since the user had to explicitly enable the flag
and probably know what they're doing, it is shown regardless of what action is highlighted.
Differential Revision: https://phabricator.kde.org/D19562
Summary:
Removing this is part of preparations for ksmserver to become just an X
session manager. See T9779.
Instead of ksmserver opening the greeter with a tonne of args and then
having a socket to watch for changes, the new mechanism is that we fire
and forget the prompt. Then the logout prompt calls back into ksmserver
with the request. Simplifies code greatly allows for moving.
KSMserver's shutdown DBus method remain on ksmserver for compatibility,
but ultimately spawning the prompt will move to libkworkspace and called
from the session directly.
QML API in the logout greeter remains mostly untouched.
Behavioural changes are minor:
There was a QML property "choose" exposed to the greeter if the default
shutdown option is set to None. Though we don't allow this in the KCM
and our default prompt doesn't use it.
We no longer block a user from saving a session whilst a logout prompt
is active.
Test Plan:
Logged out
Shutdown
Also ran with old ksmserver, still got a prompt
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D16066
KDisplayManager::bootOptions only worked with "NewKDM" but KDM is obsolete in Plasma 5.
Creating an instance of KDisplayManager does DBus stuff to find out the DM being used.
Also, kdmrc is dead and this code always returned None anyway.
Differential Revision: https://phabricator.kde.org/D13998
Summary:
Gives a speed boost on multiple monitors where we have multiple views.
Also cleaned up some imports/paths used
Test Plan:
Grepped use of rootContext() referred to the right context
Used greeter to log out successfully
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D12891
Summary: port the shutdown dialog to package::fileUrl, dropping the support for old custom themes
Test Plan: shutdown dialog work correctly both with normal and rcc kpackages
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9195
Summary:
* use backgroundcontrast effect, improves readability a lot
* non-current actions a bit more translucent
* background is actually black if the color scheme is dark, looks washed out otherwise
* add an OK button, that was complained a lot
* short fade animation at the beginning
Test Plan: see screenshot
Reviewers: #plasma, sebas, broulik
Reviewed By: #plasma, broulik
Subscribers: graesslin, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5036
Otherwise the window isn't fullscreen as far as kwin is concerned and then fast blur code path isn't executed.
Differential Revision: https://phabricator.kde.org/D5115
Summary:
Commit d7c230ab19 changes the window to
fill the screen.
However it left dead code in shutdown dialog which was also
repositioning it - and worse...positioning it in a different place
which is just a mess.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2619
Summary:
Positions the shutdown dialog in the absolute space if there is the
PlasmaShell interface.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2445
Summary:
This follows the approach of kscreenlocker and ksplash: in multi-screen
setups there is one dedicated greeter shown per screen. When the screen
changes resolution, the view gets adopted, when a screen is destroyed,
the view is removed and when a new screen gets added, a view gets
created.
This should make the logout dialog work reliable in multi-screen setups.
As an additional change it's no longer bound to X11 and can also create
views on Wayland, though further integration is required to have the
views positioned correctly and make the compositor aware of this being
a logout dialog (handle like popups).
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2264
Summary:
Ksmerver now starts the logout greeter binary instead of creating
the KSMShutdownDlg. The complete interaction to logout is now performed
in an async, non-blocking way.
Test Plan: Successfully cancelled logout and performed logout and shutdown
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2257
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
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2252
It doesn't make sense to be able to interact with windows behind it and this also
prevents accidental logouts when you somehow lose the window behind others and
forget about it.
REVIEW: 124586
BUG: 357143
FIXED-IN: 5.5.4