[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#48669: Inconsistent overlay placement between minibuffer-message and
From: |
Juri Linkov |
Subject: |
bug#48669: Inconsistent overlay placement between minibuffer-message and set-minibuffer-message |
Date: |
Mon, 31 May 2021 23:24:14 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) |
> `minibuffer-message' and `set-minibuffer-message' place the overlay
> containing the message slightly differently, resulting in a different
> behaviour when there are other overlays present at the end of the
> minibuffer.
>
> The overlay created by `minibuffer-message' always gets added to the
> end of the minibuffer.
> The overlay created by `set-minibuffer-message' also gets added to the
> end of the minibuffer, but its properties make it so that it is shown
> before other overlays at the position.
> This is particularly important when the user uses packages that add
> overlays to the minibuffer, such as vertical completion packages like
> selectrum, vertico, and others.
> The way `set-minibuffer-message' configures the overlays makes it so
> that the overlay is displayed before the other overlays, which I
> believe is more compatible with external packages (see attached image
> for a visual example).
To support completion packages such as icomplete, the overlay in
`set-minibuffer-message' was fixed, but not `minibuffer-message'.
> Would it make sense to change this behaviour (i.e. overlay
> configuration) so that it is consistent in both functions?
Right, `minibuffer-message' should be consistent with `set-minibuffer-message'
by copying this part:
;; Make sure the overlay with the message is displayed before
;; any other overlays in that position, in case they have
;; resize-mini-windows set to nil and the other overlay strings
;; are too long for the mini-window width. This makes sure the
;; temporary message will always be visible.
(overlay-put minibuffer-message-overlay 'priority 1100)