Skip to content
  • Martin Flöser's avatar
    [server] Cache the state of synchronized sub surfaces · b7f470e5
    Martin Flöser authored
    When committing the state of a sub-surface, the state should not
    be immediately applied if the sub-surface is in synchronized mode.
    Instead it should be cached and only applied after the parent surface's
    state is applied.
    
    To implement this the Surface::Private has now a third cached state
    buffer. When committing the state is either swapped between pending and
    current or pending and subSurfacePending. Once the parent state is
    applied the state is swapped between subSurfacePending and current.
    
    The logic for applying state changes is changed. Instead of copying the
    complete state object, the individual state changes are now copied and the
    source gets completely reset to default values. Only the children tree is
    copied back, as that list needs to be modified.
    b7f470e5