Subject: bug#20563: closed (Re: bug#20563: Echo Area Disrupts Minibuffer Input)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 07 Dec 2016 20:26:02 +0000

Your bug report

#20563: Echo Area Disrupts Minibuffer Input

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
20563: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20563
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#20563: Echo Area Disrupts Minibuffer Input
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Wed, 07 Dec 2016 15:25:22 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Michael Xavier wrote:

> I can't get it to reproduce right now. It may be a race condition, or maybe
> its on a timer before it reverts to the minibuffer? I'm not sure.

18 months with no further information, so closing.

Subject: Echo Area Disrupts Minibuffer Input
From: Michael Xavier <[email-masked]>
To: [email-masked]
Date: Tue, 12 May 2015 10:40:34 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

I've encountered a rather frustrating UI issue as a recent Emacs convert
and would love to help think of a way to fix it. Bug #11172 references this
issue, but there was no comment or resolution.

The issue is that the echo area, which is used heavily from the message
function, shares screen real estate with the minibuffer. This normally
isn't a huge issue but if the user is actually using the minibuffer to
enter text, the prompt and the text they have entered thus far is
overwritten by some unrelated message and can only be wrestled back by
typing more.

The example I encounter frequently is doing a TAGS file search and hitting
TAB to complete. The tags system will fetch a completion and simultaneously
log a message that its reading the TAGS file which will completely
overwrite the completion.

A contrived example:

   emacs -Q
   M-: (run-with-timer 5 nil (lambda () (message "hello"))) RET
   M-x

The prompt will be overwritten by the message "hello".

I don't know what the best solution is. Two ideas I've had are:

1. Suppress messages to the echo area if the minibuffer is waiting on
input. The messages could display after the minibuffer stops waiting
(or not at all and they'll just log to *Messages*).

2. Divide the minibuffer (horizontally?) into the minibuffer proper
and the echo area. Maybe the division could only happen when there's
something in the echo area. Something tells me this approach is much
harder and more controversial.