Subject: Re: bug#63271: 29.0.90; broken mouse-face

From: Juri Linkov <[email-masked]>
Date: Tue, 09 May 2023 09:43:29 +0300

>>   (insert " " (propertize "TODO"
>>                           'face '(:inherit variable-pitch)
>>                           'mouse-face 'highlight))
>
> I don't see this in an Xft build, if it helps.  If you place the
> following instrumentation in ftcrfont.c:
>
> diff --git a/src/ftcrfont.c b/src/ftcrfont.c
> index c9a4de8137b..1e711152ba6 100644
> --- a/src/ftcrfont.c
> +++ b/src/ftcrfont.c
> @@ -593,6 +593,10 @@ ftcrfont_draw (struct glyph_string *s,
>        s->background_filled_p = 1;
>        cairo_rectangle (cr, x, y - FONT_BASE (s->font),
>  		       s->width, FONT_HEIGHT (s->font));
> +      fprintf (stderr, "ftcrfont_draw: %d, %d, %d, %d, %d\n",
> +	       x, y - FONT_BASE (s->font),
> +	       s->width, FONT_HEIGHT (s->font),
> +	       s->hl);
>        cairo_fill (cr);
>      }
>  
> then move point over the text under mouse face, what is printed?

This is after moving point backward from last "O" to first "T" in "TODO"
while mouse is over the text:

ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 58, 56, 12, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 58, 56, 12, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 45, 56, 13, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 45, 56, 13, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 10, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 10, 19, 2

and forward from "T" to "O":

ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 45, 56, 13, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 45, 56, 13, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 58, 56, 12, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 58, 56, 12, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 70, 56, 13, 19, 2
ftcrfont_draw: 25, 56, 10, 19, 0
ftcrfont_draw: 35, 56, 48, 19, 0
ftcrfont_draw: 70, 56, 13, 19, 2