Skip to content
  • Vlad Zahorodnii's avatar
    [kstyle] Port to KWindowSystem shadows API · 7f3ae29b
    Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
    Summary:
    The primary task of a compositor is to take a bunch of buffers from
    different clients and present them on the screen. However, the compositor
    may need to present its own stuff on the screen as well.
    
    On X11, internal clients (the ones created by KWin) are backed by real
    windows. This looks a bit clumsy since KWin uses X11 to communicate with
    itself.
    
    On Wayland, we use our own QPA that talks to KWin directly. Given that
    internal clients with the custom QPA are no longer backed by wayland
    surfaces or x11 windows, things like blur, background contrast, and
    shadows must be set through KWindowSystem APIs so KWin can catch the
    relevant API calls and handle them accordingly.
    
    The good thing is that we get rid of a good portion of platform-specific
    code. The bad thing is that we still need to be cautious about QPAs that
    destroy the underlying platform resources upon a window becoming hidden.
    
    Reviewers: #kwin, #plasma, mart
    
    Reviewed By: #plasma, mart
    
    Subscribers: mart, plasma-devel
    
    Tags: #plasma
    
    Maniphest Tasks: T12496
    
    Differential Revision: https://phabricator.kde.org/D26475
    7f3ae29b