• Po Lu's avatar
    Fix minor issues with text display when cursor is in mouse face · 2028df78
    Po Lu authored
     * src/xdisp.c (get_cursor_offset_for_mouse_face): Don't calculate
    offsets for the glyph the cursor is on, and move some logic to
    get_glyph_pixel_width_delta_for_mouse_face.
    (fill_composite_glyph_string)
    (fill_gstring_glyph_string)
    (fill_glyphless_glyph_string)
    (fill_glyph_string)
    (fill_image_glyph_string)
    (fill_xwidget_glyph_string)
    (fill_stretch_glyph_string): Set s->face to mouse face whenever
    appropriate.
    (get_glyph_pixel_width_delta_for_mouse_face): New function.
    (set_glyph_string_background_width): Update background width and
    s->width to take into account differing :box properties of the mouse
    face, when producing strings for the cursor.
    (erase_phys_cursor): Redraw mouse face when erasing a cursor on top of
    the mouse face.
     * src/xterm.c (x_set_mouse_face_gc): Stop setting s->face when under
    mouse face because redisplay now does that for us.
     * src/w32term.c (w32_set_mouse_face_gc): Likewise.
    2028df78
xterm.c 406 KB