https://bugs.kde.org/show_bug.cgi?id=526999
--- Comment #2 from Daniel <[email protected]> --- (In reply to David Edmundson from comment #1) > >When a wlr-layer-shell client changes its buffer size together with its > >anchors/margins/size in a single wl_surface.commit > > It shouldn't. > > Lets say I have a panel filling the bottom of the screen, then want it to > fill the side of the screen. > When I change the anchors, the panel has no idea how tall it should be. It > can't choose a size. > > If the panel were to move immediately to the new position, we would be > drawing a horizontal bar in the wrong place. > > The correct thing for clients: > - request change anchors > - commit (to group the anchor changes) > - wait for configure > - apply new buffer size > - apply new position > > The spec is a bit weak and a bit unclear. It could do with an ack_configure, > but your interpretation would create more problems. Appreciate the reply, that makes sense. After an anchor change the client can't know its size until the configure, so applying everything in one commit can't be right in general. I did notice one thing though, in 6.7.5 when the rearrange sends that configure, LayerShellV1Window::moveResizeInternal also moves the surface right away, keeping its old size (src/layershellv1window.cpp:256, "The surface position is updated synchronously"). So even with the order you describe, the old buffer is shown at the new position until the client commits its resized buffer, which is the "horizontal bar in the wrong place" case. Should that move wait for the buffer that answers the configure, so size and position are applied together? Or is the synchronous move intentional? Not blocking anything on my side; I now keep the surface's size and position fixed while it's visible. -- You are receiving this mail because: You are watching all bug changes.
