[screenlocker] Render greeter backgrounds as black
Review Request #124948 - Created Aug. 27, 2015 and submitted
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. [screenlocker] Delay the async loading till first frame is rendered 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.
Used kscreenlocker_test: now my screens all go nicely black and then later on swap to the greeter content.