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

Authored by graesslin on Mar 10 2017, 5:56 PM.

Description

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

Summary:
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
unlock.

BUG: 377152

Test Plan: killed kscreenlocker_greet 6 times, always properly restarted

Reviewers: Plasma

Subscribers: plasma-devel

Tags: Plasma

Differential Revision: https://phabricator.kde.org/D5008