Subject: Re: bug#71030: Display property of overlay-arrow-string is not honored

From: Eli Zaretskii <[email-masked]>
Date: Sat, 18 May 2024 14:35:48 +0300

> Date: Sat, 18 May 2024 00:00:11 -0400
> From: Emre Yolcu <[email-masked]>
> 
> I have been trying to replace the use of fringes with margins in my 
> configuration. (This is to work around the fact that fringe indicators 
> look bad on high-DPI displays.) Using display properties, I was able to 
> move almost all of the indicators I care about to the margins. However, 
> as of Emacs 29.3, the display property of `overlay-arrow-string` is not 
> honored. I have the following in my configuration:
> 
>    (setq overlay-arrow-string
>          (propertize ">" 'display `((margin left-margin)
>                                     ,(propertize ">" 'face 'default))))
> 
> The above setting fails to move the overlay arrow in, say, Occur buffers 
> to the margin. On the other hand, the face property of 
> `overlay-arrow-string` does get applied, so the following works as expected:
> 
>    (setq overlay-arrow-string (propertize ">" 'face 'shadow))
> 
> I am not sure what the intended behavior is supposed to be here, so this 
> may be more of a feature request than a bug report.

It is not very clear to me what, specifically, did you try and what
did you expect to happen as result.  Would you mind showing a simple
recipe, starting from "emacs -Q", that should have displayed the
overlay arrow, but didn't?  Then I could look into the relevant code
and see if this is supported and/or whether or how we could make it
work.

Thanks.