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

From: Eli Zaretskii <[email-masked]>
Date: Tue, 09 May 2023 11:43:09 +0300

> From: Juri Linkov <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Tue, 09 May 2023 09:43:29 +0300
> 
> > --- 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

s->hl == 2 means DRAW_CURSOR.  Why does Emacs draw cursor -- did you
s->move point or did you move the mouse pointer?  I thought Po Lu
s->meant the latter, not the former.