Redraw is not scheduled when a desynchronized subsurface is mapped
Submitted by Arnaud Vrac
Assigned to Arnaud Vrac
The spec is pretty clear on this point:
A sub-surface becomes mapped, when a non-NULL wl_buffer is applied and the parent surface is mapped. The order of which one happens first is irrelevant. A sub-surface is hidden if the parent becomes hidden, or if a NULL wl_buffer is applied. These rules apply recursively through the tree of surfaces.
From this paragraph, the expected behaviour when a subsurface is mapped (ie a buffer is attached on it for the first time) would be that it is displayed immediatly when its parent is mapped and the subsurface is in desynchronized mode.
Internally weston handles this correctly: the subsurface gets marked as mapped in
subsurface_configure. However no redraw is scheduled, since
weston_view_update_transform is not called in this case; so the subsurface is not shown until another event triggers a redraw in the compositor.