Commit f425a774 authored by Eli Zaretskii's avatar Eli Zaretskii

Fix display artifacts when 'display' properties cover newlines

* src/xdisp.c (pos_visible_p): Set glyph_row of scratch iterators
to NULL, to avoid producing glyphs while we figure out the layout.
(Bug#44826)
parent 2b1cec55
Pipeline #7904 passed with stage
in 65 minutes and 8 seconds
......@@ -1700,6 +1700,7 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y,
from a display vector, we need to consume all of
the glyphs from that display vector. */
start_display (&it2, w, top);
it2.glyph_row = NULL;
move_it_to (&it2, charpos - 1, -1, -1, -1, MOVE_TO_POS);
/* If we didn't get to CHARPOS - 1, there's some
replacing display property at that position, and
......@@ -1823,6 +1824,7 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y,
of the display line where the display string
begins. */
start_display (&it3, w, top);
it3.glyph_row = NULL;
move_it_to (&it3, -1, 0, top_y, -1, MOVE_TO_X | MOVE_TO_Y);
/* If it3_moved stays false after the 'while' loop
below, that means we already were at a newline
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment