Subject: Re: bug#40687: Missing right border on composed text used in 'display property

From: Stephen Berman <[email-masked]>
Date: Thu, 23 Apr 2020 22:07:21 +0200

On Thu, 23 Apr 2020 18:48:09 +0300 Eli Zaretskii <[email-masked]> wrote:

>> From: Clément Pit-Claudel <[email-masked]>
>> Date: Fri, 17 Apr 2020 15:44:36 -0400
>> 
>> With the following sample code, I observe the results shown in the
>> attached image.  The first two "ab" have a border, but the last one
>> only has three-quarters of its border: the right side is missing.
>> 
>> (defface my-button
>>   '((t :box(:line-width -4 :style released-button)
>>        :background"lightgrey":foreground"black"))
>>   "Button face")
>> 
>> (with-current-buffer (get-buffer-create "button")
>>   (insert "\n")
>>   (insert (propertize "ab" 'face 'my-button))
>>   (insert " ")
>>   (insert (propertize (compose-chars ?a '(Br . Bl) ?b) 'face 'my-button))
>>   (insert " ")
>>   (insert (propertize "ab" 'display (compose-chars ?a '(Br . Bl) ?b) 'face 'my-button))
>>   (insert " ")
>>   (pop-to-buffer-same-window (current-buffer)))
>
> Thanks, should be fixed now.
>
> FTR, a recipe to test more fully display of composed text with a :box
> face is below.  I found quite a few problems with this, especially
> when the text in the boxed face ends with a composed character.  They
> should be fixed now on the master branch.  I tested this fully only on
> MS-Windows; could someone please use the recipe below to verify the
> display looks correctly also on X and on NS?

I'm on GNU/Linux and confirm that with your patch all the buttons
produced by your recipe display correctly, i.e., with the right border.

Steve Berman