Skip to content
  • David Edmundson's avatar
    [wayland] Queue XDG configure requests when resizing toplevel interactively · 985601e0
    David Edmundson authored
    Summary:
    When resizing a window particularly from the left side, we need to
    co-ordinate moving the window with when we get the resized buffer.
    
    The code in AbstractClient::handleMoveResize checks
    isWaitingForResizSync to make sure we never send more than one resize
    request at a time to keep that in sync.
    
    This makes sense on X and wl_shell_surface, but not on XDGShell where we
    can track which resize events have been handled by the client.
    
    ShellClient already keeps a stack of our pending configure requests and
    handles everything appropriately, we don't need to block.
    
    This results in a smoother dragging experience and avoids a potential
    deadlock currently seen when a client may not reply to a no-op configure
    request.
    
    CCBUG: 403376
    
    Test Plan: Async ack handling is covered by existing unit tests
    
    Reviewers: #kwin, zzag
    
    Reviewed By: #kwin, zzag
    
    Subscribers: zzag, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D20397
    985601e0