Skip to content
  • David Edmundson's avatar
    [wayland] Finish initialising ShellClient only when commited to the surface · 2bad2b48
    David Edmundson authored
    Summary:
    Everything on the wl_surface is double buffered.
    
    When we create an XdgShell toplevel or popup we shouldn't treat it as
    attached until it's committed to the surface.
    
    A client should commit the surface after it's sent it's initial state of
    the Xdg topLevel; minimumSize, title, app_id, etc.
    
    By blocking sending configure events we will have flushed the correct
    initial state before sending a single atomic correct event to the
    client. It also adds a hook to re-evaluate rules now that all properties
    are set.
    
    Arguably this applies to WlShellSurface too, but I've left it unchanged
    as it's deprecated and hard to verify real client behaviour.
    
    Test Plan: Ran all unit tests
    
    Reviewers: #kwin, zzag
    
    Reviewed By: #kwin, zzag
    
    Subscribers: zzag, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D18583
    2bad2b48