bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#50660: 28.0.50; Text artifacting when the cursor moves over text und


From: Po Lu
Subject: bug#50660: 28.0.50; Text artifacting when the cursor moves over text under mouse face that originally displayed a box
Date: Thu, 14 Oct 2021 19:54:38 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Eli Zaretskii <eliz@gnu.org> writes:

>> @@ -1799,11 +1799,24 @@ x_draw_glyph_string_foreground (struct glyph_string 
>> *s)
>>  {
>>    int i, x;
>>  
>> +  struct face *face_for_box_line = s->face;
>> +
>> +  if (s->hl == DRAW_CURSOR && cursor_in_mouse_face_p (s->w))
>> +    {
>> +      /* In this situation, the cursor is in the mouse face, but
>> +     s->face hasn't been updated with the mouse face yet. */
>> +      face_for_box_line =
>> +    FACE_FROM_ID_OR_NULL (s->f, MOUSE_HL_INFO (s->f)->mouse_face_face_id);
>> +
>> +      if (!face_for_box_line)
>> +    face_for_box_line = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
>> +    }

> Can't we "fix" this face in xdisp.c, before calling the
> terminal-specific backend?  The bonus will be that we then do it only
> in one place.

The only way to do that I can think of would be to offset the glyph
string's x position (but not the phys cursor) by the vertical box line
width, and I think it would be an ugly thing to do, because that would
imply lying to the window system backend.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]