Diffusion KWin 9b922f88332f

Split out a dedicated InternalClient class

Authored by graesslin on Jan 27 2019, 7:48 PM.


Split out a dedicated InternalClient class

Most of the functionality which is special to internal clients is moved
from ShellClient to InternalClient. As KWin's qpa is still bound to the
Wayland protocol InternalClient inherits from ShellClient. Due to that
some aspects in ShellClient are "weird". ShellClient still detects
whether it's an internal client and uses the variable m_internal to
capture the state. This is required as we cannot use the isInternal
method. Most of m_internal usage is in init which is called from
constructor of ShellClient. Thus it's not possible to call into virtual
methods of InternalClient.

Also some of the code is duplicated and some methods are temporarily
marked as virtual.

The next step will be to remove ShmBuffer for internal windows which
should decouple the two implementations further with the long term goal
of having InternalClient inherit AbstractClient directly.

Test Plan:
Run nested KWin, triggered outline (OpenGL case) and debug console (shm case).
InternalWindow unit test still passes.

Reviewers: KWin

Subscribers: kwin

Tags: KWin

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


graesslinFeb 21 2019, 5:51 PM
Differential Revision
D18569: Split out a dedicated InternalClient class
R108:66faa480d414: SVN_SILENT made messages (.desktop file) - always resolve ours
romangg raised a concern with this commit.Feb 21 2019, 11:39 PM
romangg added a subscriber: romangg.

27 autotests fail now.

This commit now has outstanding concerns.Feb 21 2019, 11:39 PM
zzag added a subscriber: zzag.EditedFeb 22 2019, 12:57 AM

27 autotests fail now.

The last time when I ran KWin's test suite against this patch, tests were passing. On it.

romangg accepted this commit.Feb 22 2019, 8:33 AM

Tests fixed with e96da56f8ced.

All concerns with this commit have now been addressed.Feb 22 2019, 8:33 AM