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: Sat, 16 Oct 2021 15:45:31 +0300

> From: Po Lu <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 16 Oct 2021 20:36:43 +0800
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > That's a separate problem, which exists in the current code as well,
> > doesn't it?
> 
> It doesn't, because s->font isn't updated (while s->face is) in the
> current code, which makes everything work properly.

Then maybe the simplest solution would be to do the same.

> > The only solution to that is to merge the mouse-face with the original
> > face, ignoring the attributes of mouse-face that affect the text size,
> > as documented in the ELisp manual.
> 
> Would this be easy to do?  If so, could you explain where to begin
> implementing this?  Thanks.

See merge_face_vectors.  But perhaps ignoring the font of what
FACE_FOR_CHAR produces has the same effect, but cheaper.