Subject: Re: bug#50660: 28.0.50; Text artifacting when the cursor moves over text under mouse face that originally displayed a box

From: Eli Zaretskii <[email-masked]>
Date: Tue, 21 Sep 2021 09:11:45 +0300

> From: Po Lu <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Tue, 21 Sep 2021 08:38:31 +0800
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > One other problem with this implementation is that the additional code
> > will run when the mouse-highlight is removed as well, in which case we
> > know that no adjustment is needed for w->phys_cursor.x.
> 
> Interesting.  What if the cursor is moved while it is inside mouse face
> though, if the adjustment is done in show_mouse_face? Won't it only
> apply to the cursor when the mouse face is first shown, and not
> necessarily when changes happen to the position of the cursor later?

When the cursor moves, w->phys_cursor.x is recomputed.  AFAIR, in this
case we perform the usual redisplay (which updates w->phys_cursor),
and then reapply mouse-face, so show_mouse_face should be called
again.  But you can easily establish if I'm right by running Emacs in
a debugger with a breakpoint in show_mouse_face.  Let me know if you
find something unexpected or need help in interpreting the findings.