Skip to content
  • Martin Flöser's avatar
    Split out a dedicated InternalClient class · 9b922f88
    Martin Flöser authored
    Summary:
    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
    9b922f88