Diffusion KWin ec610fd7edb7

Port one of session management connections state to a custom API

Authored by davidedmundson on Oct 31 2019, 4:16 PM.

Description

Port one of session management connections state to a custom API

Summary:
Currently kwin opens a second ICE connection to ksmserver in order to
tell the state of kwin's whether we're logging out and saving clients or
not.

This requires that kwin launches after ksmserver to have the connection
which is a dependency I want to break.

Practically this code is already ksmserver specific as it relies on some
custom code that sends the first saveState request to kwin first.

Instead we can replace it with a bespoke IPC over DBus and siplify the
code both end. This will allow several other future enhancements that we
want with regards to handling the session state, as well as make an
effort platform agnostic session management, as well as cleaning up some
complex code.

Ksmserver calls into kwin, rather than having kwin watch ksmserver state
to allow us make sure it's race free.

Reviewers: KWin, zzag

Reviewed By: KWin, zzag

Subscribers: romangg, zzag, kwin

Tags: KWin

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