diff options
author | Eli Zaretskii <eliz@gnu.org> | 2019-04-24 15:26:54 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2019-04-24 15:26:54 +0300 |
commit | f6e6c1744be5620ce97c8429a161ae5cf733a949 (patch) | |
tree | 65bafac4721689f26ad9cec434e6f249f79219bf | |
parent | a2e9d3e33508473547ffa7c3f800fe0e3c5b5c1c (diff) | |
download | emacs-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.c | 6 |
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 |