Skip to content
  • Jonas Ådahl's avatar
    wayland: Rework asynchronous window configuration · 554644f9
    Jonas Ådahl authored
    This changes how asynchronous window configuration works. Prior to this
    commit, it worked by MetaWindowWayland remembering the last
    configuration it sent, then when the Wayland client got back to it, it
    tried to figure out whether it was a acknowledgment of the configuration
    or not, and finish the move. This failed if the client had acknowledged
    a configuration older than the last one sent, and it had hacks to
    somewhat deal with wl_shell's lack of configuration serial numbers.
    
    This commits scraps that and makes the MetaWindowWayland take ownership
    of sent configurations, including generating serial numbers. The
    wl_shell implementation is changed to emulate serial numbers (assuming
    each commit acknowledges the last sent configure event). Each
    configuration sent to the client is kept around until the client one. At
    this point, the position used for that particular configuration is used
    when applying the acknowledged state, meaning cases where we have
    already sent a new configuration when the client acknowledges a previous
    one, we'll still use the correct position for the window.
    
    GNOME/mutter!907
    554644f9