emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New multi-command facility displays in the wrong echo area.


From: Alan Mackenzie
Subject: Re: New multi-command facility displays in the wrong echo area.
Date: Sat, 10 Oct 2020 10:15:09 +0000

Hello, Gregory.

On Fri, Oct 09, 2020 at 21:48:49 +0000, Gregory Heytings wrote:

> Hi Stefan,

> >>> (i) In a GUI environment, create two frames, each displaying a buffer.
> >>> (ii) In frame F1, do C-x b `switch-to-buffer', but don't type anything 
> >>> more.
> >>> (iii) Move to frame F2, and start an isearch with C-s some-text.

> >>> Although currently in F2, the isearch's pattern is displayed in the 
> >>> echo area for F1.  This is wrong.

> >> FWIW, this behavior has been with us at least since Emacs-21.


> > I fear that's not correct.  I don't see this behavior in Emacs 21 to 26 
> > (inclusive), it is new in Emacs 27.1.  More precisely, it is because the 
> > new variable set-message-function has the default value 
> > set-minibuffer-message. To restore the previous default behavior:

> > (setq set-message-function nil)


> IMO this could/should be fixed in set-minibuffer-message, by checking that 
> the active minibuffer is on the same frame:

> (when (and (not noninteractive)
>             (window-live-p (active-minibuffer-window))
>             (eq (window-frame) (window-frame (active-minibuffer-window)))

Thanks!  I've just tried this out, and it appears to work well.

In particular, in the scenario I outlined, on a TTY, the echo area for
frame F2 is used when F2 is the current frame, even if there is a
minibuffer active in F1.

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]