• Martin Flöser's avatar
    Acknowledge the server side deco mode in WaylandServer not ShellClient · 339a08de
    Martin Flöser authored
    With GTK applications our code showed issues. With GTK the sequence for
    a menu or dialog window is:
     1. create surface
     2. create server side decoration
     3. request csd
     4. create xdg_shell_surface
    Which result in KWin to have the ServerSideDecoration object being
    created before the ShellClient is created. The connect for mode changed
    happens in ShellClient, which is too late to catch that the window
    requested client side decoration. Thus KWin created a decoration about
    things such as a menu.
    This change moves the acknowledge of the mode to WaylandServer. As we
    anyway always acknowledge the requested mode we can also do it there and
    don't require ShellClient to be present. Thus when the ShellClient is
    created the mode is properly reflected and no decoration is created.
    BUG: 389117
    FIXED-IN: 5.12.0
    Test Plan: Played a lot with evince
    Reviewers: #kwin, #plasma
    Subscribers: plasma-devel, kwin
    Tags: #plasma
    Differential Revision: https://phabricator.kde.org/D9967
wayland_server.cpp 25.9 KB