GNU bug report logs -
#46177
27.1; Display problem with minibuffer overlay when using display property
Previous Next
Reported by: Clemens <clemens.radermacher <at> posteo.de>
Date: Fri, 29 Jan 2021 18:00:01 UTC
Severity: normal
Found in version 27.1
Done: Clemens <clemens.radermacher <at> posteo.de>
Bug is archived. No further changes may be made.
Full log
Message #23 received at 46177 <at> debbugs.gnu.org (full text, mbox):
> Use a face which explicitly overrides every attribute of minibuffer
> prompt face, I guess?
As far as I understand I would have to loop through the overlay string,
too and apply those face adjustments to every of those display property
strings. I think then I can also just inline them like in my shown
example which avoid this issue in the first place.
>
>> (set-face-attribute 'minibuffer-prompt nil :foreground "purple")
>> (minibuffer-with-setup-hook
>> (lambda ()
>> (overlay-put
>> (make-overlay (point-max) (point-max) nil t t)
>> 'after-string
>> (concat " from"
>> (propertize " world"
>> 'display
>> " minibuffer"))))
>> (read-string "Hello"))
>>
>>
>> Even with the " from" string between the string defined in the display
>> property gets the prompt face applied.
>
> Because " minibuffer" is a display string, and its buffer position is
> still EOB. That it has the " from " string in the overlay property
> before it doesn't change the buffer position whose face affects the
> display string.
Because the " minibuffer" string follows the non affected " from" string
this is unexpected from a caller/UI viewpoint IMO. I don't understand
the underlying reasoning for this but if you don't think there is
something to fix here, I will accept that and continue using my workaround.
This bug report was last modified 4 years and 111 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.