Subject: Re: bug#64630: 30.0.50; unable to change to raise or lower a child-frame

From: Po Lu <[email-masked]>
Date: Sat, 15 Jul 2023 09:16:28 +0800

Andrey Listopadov <[email-masked]> writes:

> Hello.
>
> I'm working on an alternative windowing system for Emacs that explores
> child frames as a base for windowing, instead of using splits.  I've
> noticed that no matter what I do, I can't restack child-frames.  Calling
> `frame-raise' or changing the `z-group' has no effect on the frames
> spawned by my window manager.
>
> The simplest possible way to test this in Emacs -Q is to eval this code
> twice:
>
> (let ((frame
>        (make-frame
> 	`((width . 20) (height . 8)
> 	  (parent-frame . ,(selected-frame))
> 	  (drag-with-header-line . t)
> 	  (undecorated . t)
> 	  (minibuffer . nil)))))
>   (set-window-parameter
>    (frame-root-window frame)
>    'header-line-format
>    " %b"))
>
> It will create two small child frames, and no matter what I do the order
> of frames is not changes.  A friend of mine reported that it works under
> X on Emacs 28 as expected.  I suspect that it may be related to the fact
> that I'm using Wayland version of GNOME Shell and a PGTK build. I will
> try to recompile Emacs later and post the results here.

This is a known limitation of PGTK builds that is a consequence of how
newer versions of GDK implement its ``client-side windows''.  It was
discussed in depth last year, within another bug report, and the
consensus was that it wouldn't be fixed any time soon.