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

From: Po Lu <[email-masked]>
Date: Tue, 09 May 2023 09:08:17 +0800

Juri Linkov <[email-masked]> writes:

>>> I think your guess about fonts involved is right
>>> because the problem disappears when the tab-line face
>>> doesn't inherit from the 'variable-pitch' face.
>>
>> How can a face affect mouse-highlight?
>
> Here is the minimal test case:
>
>   (insert " " (propertize "TODO"
>                           'face '(:inherit variable-pitch)
>                           'mouse-face 'highlight))
>
> that causes such effect after moving point over highlighted text
> in fundamental-mode:
>
> x

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?