Subject: Re: bug#47806: 28.0.50; `make-frame` frame should probably clone the `environment` parameter into the new frame

From: Thibault Polge <[email-masked]>
Date: Fri, 16 Apr 2021 00:27:59 +0200

> Are you saying that make-frame-on-display works differently under
> Wayland?

AFAIK Emacs doesn't support Wayland yet (unless there's been work to
that end with GTK3?).  To show X programs, Wayland environments rely on
XWayland, an X server that runs as a Wayland program.  I this don't
believe that `make-frame-on-display` does anything different on Wayland,
but I suspect, to the contrary, that it's fully unaware that it's not on
a "real" X server. Or, maybe more accurately, that it has no access to
the underlying Wayland system, which I'm trying to reach.

> What is the "ancestor frame"?  We don't have such relationships
> between frames.  And if you mean the frame that was the selected on
> when the other frame was created, I'm not sure I agree that this is an
> indication of whether environment should be copied.

Yes, that's roughly what I meant by "ancestor".  I'd argue to the
contrary that this is a very good indication: those two frames run are
related, they should share their environment instead of the daemon's.
But perhaps my understanding of the problem is biased by my WM issues.

I meant something just a bit stronger than "was the selection", though.
In my idea, a new frame should inherit the selected frame's environment
if and only if it's being created by an interactive command call.  This
excludes, for example, frames created from idle timers, or through a
process filter or a sentinel.  This is because, IIUC, interactive
commands need to be called from a frame, so there's really a
nonambiguous "parent" there.

> No, it's because starting a client frame is supposed to be similar to
> starting an Emacs from the same terminal.

Thank you for that clarification.