summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2019-04-24 15:26:54 +0300
committerEli Zaretskii <eliz@gnu.org>2019-04-24 15:26:54 +0300
commitf6e6c1744be5620ce97c8429a161ae5cf733a949 (patch)
tree65bafac4721689f26ad9cec434e6f249f79219bf
parenta2e9d3e33508473547ffa7c3f800fe0e3c5b5c1c (diff)
downloademacs-f6e6c1744be5620ce97c8429a161ae5cf733a949.tar.gz
Fix posn-at-point with line-number display and display properties
* src/xdisp.c (pos_visible_p): Account for line-number display width when CHARPOS is covered by display property that begins at the 2nd display element of a screen line. (Bug#35404)
-rw-r--r--src/xdisp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index a88fc698b85..825b74d5392 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1623,6 +1623,12 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y,
set_iterator_to_next (&it3, false);
}
top_x = it3.current_x - it3.pixel_width;
+ /* Account for line-number display, if IT3 still
+ didn't. This can happen if START - 1 is the
+ first character on its display line. */
+ if (!it3.line_number_produced_p
+ && it.line_number_produced_p)
+ top_x += it.lnum_pixel_width;
/* Normally, we would exit the above loop because we
found the display element whose character
position is CHARPOS. For the contingency that we