desktop-shell: make sure child window stays active

If a xdg_toplevel surface has a child (or multiple), the desktop shell
still allows to activate the parent. This can be problematic with
modal dialogs such as message boxes which then are hidden behind the
main window, which might be non-responsive to inputs at this this
point.

The protocol specifies set_parent as follows: "Set the 'parent' of
this surface. This surface should be stacked above the parent surface
and all other ancestor surfaces."

Track parent/child relationship in desktop-shell. Follow the protocol
recommendation and make sure the child stays stacked above the parent.

Fixes: #231

Signed-off-by: Stefan Agner <stefan@agner.ch>
2 jobs for modal-dialog-ontop-parent in 1 minute and 52 seconds (queued for 1 second)
latest
Status Job ID Name Coverage
  Container Prep
passed #388675
container_prep

00:00:50

 
  Build
passed #388676
build-native-meson

00:01:01