On Tue, 16 Jun 2015 23:47:03 +0800 Jonas Ådahl <jad...@gmail.com> wrote:
> On Tue, Jun 16, 2015 at 04:46:55PM +0200, Arnaud Vrac wrote: > > Hi, > > > > I'm wondering if a behaviour of weston related to subsurfaces is either a > > bug or intended. The protocol description is not clear on what happens in > > the following cases: > > > > Suppose I have a shell surface (BLUE) and two subsurfaces (RED, GREEN). I > > want to stack them to I get RED, GREEN, BLUE from bottom to top. > > > > If I do: > > > > wl_subsurface_place_below(GREEN->subsurface, BLUE->surface); > > wl_subsurface_place_below(RED->subsurface, GREEN->surface); > > > > It works, but if I do: > > > > wl_subsurface_place_below(RED->subsurface, GREEN->surface); > > wl_subsurface_place_below(GREEN->subsurface, BLUE->surface); > > > > The order is GREEN, RED, BLUE instead. > > > > Logically the sibling relative order should be kept in the second case, but > > it's not. The protocol is not clear on what should happen, what is the > > expected result ? > > The protocol says "This sub-surface is taken from the stack, and put > back just above the reference surface, changing the z-order of the > sub-surfaces." Considering this, if you first placed a surface below > another, placing again, that relationship may have been broken by the > new operation. In other words, the "tree" is not moved, just the > subsurface you placed. Something here makes my brain hurt... Let's start with a stack from bottom to top: B, R, G (or equally: B, G, R) > > wl_subsurface_place_below(RED->subsurface, GREEN->surface); Take R out: B, G Put R below G: B, R, G > > wl_subsurface_place_below(GREEN->subsurface, BLUE->surface); Take G out: B, R Put G below B: G, B, R But that's not what you got. I used to think of the stacking of parent with its immediate children as an ordered list of { parent, immediate children }. I can't recall the design discussion since it was years ago, but that's what we ended up with. http://cgit.freedesktop.org/wayland/weston/tree/src/compositor.h#n945 Unfortunately I don't think I can dive into this right now. Thanks, pq _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel