Subject: Display property of overlay-arrow-string is not honored

From: Emre Yolcu <[email-masked]>
Date: Sat, 18 May 2024 00:00:11 -0400

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.