At the moment we update the clock when we resume from suspend or from
the time KCM.
However the signal from the clock KCM isn't very good as it signals just
after it requests an NTP update or clock change, not necessarily when
that finishes.
Also we miss any external NTP updates which might occur at other times
throughout the day, such as a big change when we connect to the network
This method also avoids needing solid to tell us when we're resuming
from suspend, which is deprecated API and also seems slightly slower.
BUG: 344870
REVIEW: 125028
On my system I faced the problem that instead of my prefix installed
ksmserver, the system installed ksmserver was started by kwrapper5.
REVIEW: 125113
For the screenlocker architecture to work it's crucial that the views
are shown as fast as possible with valid content. The OpenGL context
initializes with a copy of the current framebuffer (which is the unlocked
screen) and this is rendered as the first content of the lock screen
and stays visible till QtQuick has rendered a proper scene.
Initial rendering of our scene takes some time (> 500 msec) in which
the unlocked screen stays visible, but the architecture thinks it's
already fully locked and e.g. starts suspending the system. This
can result in the system waking up with the screen looking as unlocked.
This change ensures that at least one frame is rendered properly before
starting to load the real scene in an async way. That's most likely just
the black background which means the screen is properly locked, even if
it is not the proper greeter yet. It's fine for the system to suspend in
this stage as the screen is properly black.
REVIEW: 124948
The background of the whole screen locker architecture is black. During
starting the lockscreen there might be a frame with just the background.
To prevent flickering let's better use black instead of the default
white.
All UI is put into a loader to get the actual lock screen loaded faster.
This gets the creation of two views down to about < 600 msec from before
around 1.8 sec. The initial startup time is extremely important to ensure
the screen is properly locked when going to suspend.
REVIEW: 124933
This fixes type errors shown on startup:
TypeError: Cannot read property 'showPassword' of undefined
TypeError: Cannot read property 'ButtonLabel' of undefined
REVIEW: 124931
We don't need it as we get keyboard and pointer events anyway (grab),
exposure is set by Qt anyway and for everything else we have
substructure redirect on the root window.
Setting the background pixel is also no longer needed: we render a
black, non-translucent window.
So far the grace time started with the idle timeout. Given that our
greeter takes a few seconds to start it rendered a short grace time
useless as it was quite likely that the grace time already ended when
the first visible feedback was shown to the user.
Now the grace time starts when the greeter is actually shown.
REVIEW: 124917
Calls updateStruts on KScreen::Screen::currentSizeChanged instead of
KScreen::Config::outputAdded/outputRemoved.
When an output is (dis)conencted, it isn't added/removed, it is mearly
marked as (dis)connected. Therefore, updating struts on
outputAdded/outputRemoved doesn't work.
BUG: 349400
REVIEW: 124996
since we can't subclass Dialog (created from QML) inject a class
that will control it with event filters from the shell
(in an eventfilter as well installed on the qapp)
REVIEW:124555