Subject: bug#34939: Some minibuffer behaviour is annoying

From: Juri Linkov <[email-masked]>
Date: Sun, 07 Apr 2019 23:43:01 +0300

>>> Messages in the echo area should never conceal the minibuffer.  Period.
>>>
>>> There is a special function minibuffer-message for this purpose:
>>
>> Shouldn't we make this behavior the default, then?
>
> I agree it should be the default.  But unfortunately I have no idea
> how to do this.  Both ways to catch error signals in the minibuffer:
>
> 1. Overriding the default error function with command-error-function;
>
> 2. Using condition-case like
>
>   (condition-case lossage
>       ... minibuffer reading ...
>     (text-read-only
>      (minibuffer-message (get (car lossage) 'error-message)))))
>
> Both they override the default error handling called by
> ‘error-message-string’ in the function ‘print_error_message’
> that performs many useful things that include logging of error
> messages in the *Messages* buffer.  Overriding the default error
> function will exclude this useful default behavior.

Another variant is to extend 'echo_area_display' to use
'minibufer-message' in case of the active minibuffer.

More radical approach is to disjoint the minibuffer from the echo area
and display them separately one above another.