]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix display artifacts when 'display' properties cover newlines
authorEli Zaretskii <eliz@gnu.org>
Tue, 24 Nov 2020 15:04:37 +0000 (17:04 +0200)
committerEli Zaretskii <eliz@gnu.org>
Tue, 24 Nov 2020 15:04:37 +0000 (17:04 +0200)
* 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)

src/xdisp.c

index c9175a68a02436c03ee9b595fbc6181aeb4001a4..e65505b1b16981fa02721d880524ce9e3912e4f0 100644 (file)
@@ -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