Subject: bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly

From: Alan Mackenzie <[email-masked]>
Date: Wed, 18 May 2022 16:38:32 +0000

Hello, Eli.

On Wed, May 18, 2022 at 19:03:32 +0300, Eli Zaretskii wrote:
> > Date: Wed, 18 May 2022 15:49:36 +0000
> > Cc: Eli Zaretskii <[email-masked]>, [email-masked], [email-masked],
> >   [email-masked]
> > From: Alan Mackenzie <[email-masked]>

> > > Suppose I want to calculate the sum of two numbers: number-1 is shown in
> > > a buffer on frame-1, number-2 is show in a buffer on frame-2.  I start
> > > typing M-: (+ on frame-1 then I do C-x o, mark number-1, type M-w, C-x o
> > > and C-y to yank number-1 into the minibuffer.  Then I add a space to the
> > > minibuffer, type C-x 5 o to go to frame-2, mark number-2, type M-w and
> > > C-x 5 o to get back to frame-1.

> > > Ever since, that last C-x 5 o got me to the minibuffer window.  With the
> > > proposed change, that C-x 5 o will get me to the window of number-1 and
> > > I have to manually select the minibuffer window to yank number-2 there.

> > Please try the following patch, which may solve the above problem
> > without hurting the bug fix.

> Thanks, but shouldn't this somehow depend on the value of
> minibuffer-follows-selected-frame?

I think it does.  If minibuffer-follows-selected-frame is nil, when we
return to a frame on which a minibuffer has been opened, the minibuffer
will still be there, so there is no need to select a different window.

If m-f-s-frame is t, and we have moved away from the frame on which a
minibuffer was opened, that minibuffer will have moved to the new frame.
It will either be terminated before we return to the original frame (in
which case we select a window different from the now invalid
mini-window), or the minibuffer returns to the original frame when we
switch back.

The critical criterion is whether there's a valid minibuffer in the
mini-window of the frame we switch to.  It doesn't really matter whether
that minibuffer has moved between frames, or was always there.  So,
maybe this process is independent of minibuffer-follow-selected-frame.
But I think it works.

-- 
Alan Mackenzie (Nuremberg, Germany).