desktop-shell: Making an xdg parent surface fullscreen raises it over xdg children surfaces
In desktop-shell when a toplevel parent surface is made fullscreen it is raised on top over any xdg children surfaces. My understanding is that this is incorrect. See below.
- Run weston-stacking
- Press 't' to create a transient toplevel (i.e., a toplevel with an xdg parent)
- Right click on the top window decoration bar of the parent window and select "fullscreen".
Expected: parent window becomes fullscreen, but transient/xdg child window stays on top. Actual: parent window becomes fullscreen but is raised over the xdg child window.
Note that sway works as expected for the fullscreen case (although it seems that sway allows raising an xdg grandchild over an xdg child, which IIUC is also incorrect, but that's a separate issue).
In terms of the spec, from the documentation of xdg_toplevel.set_parent:
Set the "parent" of this surface. This surface should be stacked above the parent surface and all other ancestor surfaces.
I don't see any exception in the documentation for fullscreen parents, and I think that is correct. Otherwise we would have no mechanism to support, e.g., a fullscreen paint program with a floating toplevel toolbar window on top.