xdg shell status and gaps

Bill Spitzak spitzak at gmail.com
Thu Sep 25 23:35:55 PDT 2014

On 09/25/2014 03:04 PM, Jasper St. Pierre wrote:

> You mean like the existing set_parent request that has been there since
> xdg-shell has landed?
> http://cgit.freedesktop.org/wayland/weston/tree/protocol/xdg-shell.xml#n140

Yes except it needs a guarantee about what happens when you change 
parents. Currently I think it will have to do nothing until the new 
parent or the child is raised or mapped or unmapped. The goal is that 
the client can switch between two arbitrary stackings of arbitrary sets 
of surfaces with no "blinking": every pixel on the screen transitions 
exactly once.

For instance setting the parent cannot immediately raise the child 
because the client may add yet another child above that one. That would 
cause two transitions: first from whatever overlaid the first child to 
that child, then from it to the new child.

I have not been able to prove it to myself, but it is possible that 
immediate raises will be allowable as long as the client follows some 
rules about the order it sets the parents (in the above example it sets 
the highest child's parent first). Lowering of windows is definitely 
out, though.

It is also a requirement that the client can defer window raising until 
after it has been able to create and set all the child windows wanted. I 
think preventing window raises entirely is also useful for drag & drop 
sources and just to make overlapping windows useful, so I also want 
clients to be able to refuse to raise.

More information about the wayland-devel mailing list