aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2025-03-30 10:29:57 +0300
committerEli Zaretskii2025-03-30 10:29:57 +0300
commit209b7e7444df5cb164679c0e55f46cba424ad13c (patch)
treee070a94d36c14a949a7d458e03de6706b943654b /src
parent651418895d507001f161e2e22ca9b85647bca19b (diff)
downloademacs-209b7e7444df5cb164679c0e55f46cba424ad13c.tar.gz
emacs-209b7e7444df5cb164679c0e55f46cba424ad13c.zip
Fix display of overlay arrow immediately after invisible text
* src/xdisp.c (overlay_arrow_at_row): Allow the overlay arrow's marker position to be anywhere between the row's start and end charpos. This keeps the overlay arrow on display even when the preceding text is invisible. (Bug#54843)
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index f2b158f00e3..2c676c09827 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -16939,9 +16939,18 @@ overlay_arrow_at_row (struct it *it, struct glyph_row *row)
16939 16939
16940 val = find_symbol_value (var); 16940 val = find_symbol_value (var);
16941 16941
16942 ptrdiff_t arrow_marker_pos;
16942 if (MARKERP (val) 16943 if (MARKERP (val)
16943 && current_buffer == XMARKER (val)->buffer 16944 && current_buffer == XMARKER (val)->buffer
16944 && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val))) 16945 && (arrow_marker_pos = marker_position (val),
16946 /* Normally, the marker position will be at the row's
16947 start charpos. But if the previous text lines are
16948 invisible, the row's start charpos includes those
16949 invisible lines, so we make a more general test that
16950 the marker position is anywhere between the start and
16951 the end character positions of this row. */
16952 (MATRIX_ROW_START_CHARPOS (row) <= arrow_marker_pos
16953 && arrow_marker_pos < MATRIX_ROW_END_CHARPOS (row))))
16945 { 16954 {
16946 if (FRAME_WINDOW_P (it->f) 16955 if (FRAME_WINDOW_P (it->f)
16947 /* FIXME: if ROW->reversed_p is set, this should test 16956 /* FIXME: if ROW->reversed_p is set, this should test