[ksld] Don't unset greeter connection on destroy unconditionally

Authored by graesslin on Mar 10 2017, 6:03 PM.



If the greeter exits the Wayland connection gets destroyed and a new
greeter with a new Wayland connection gets created. As the destroying
of the Wayland connection is async it can happend that the destroy
signal is emitted after the new connection is created. So far our code
unconditionally reset the connection on destroy which resulted in KWin
not being able to recognize the new greeter and only presenting a black
screen. After unlock with loginctl unlock-session the session shows a
dead greater window. Which can be explained by the connection never
getting destroyed.

This change verifies that the greeter connection is actually the one
which is currently in use. If the greeter dies the new greeter is shown
properly in the Wayland session and no dead greeter is shown after

BUG: 377152

Test Plan

killed kscreenlocker_greet 6 times, always properly restarted

Diff Detail

R133 KScreenLocker
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
graesslin created this revision.Mar 10 2017, 6:03 PM
Restricted Application added a project: Plasma. · View Herald TranscriptMar 10 2017, 6:03 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
mart accepted this revision.Mar 15 2017, 12:37 PM
This revision is now accepted and ready to land.Mar 15 2017, 12:37 PM
This revision was automatically updated to reflect the committed changes.