aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2017-11-09 18:22:42 +0200
committerEli Zaretskii2017-11-09 18:22:42 +0200
commit9dde8be9cd8dc9defdae282ed24eaf2dd6bf4c31 (patch)
tree1de84cbeea58de648d41515ef7be70cac66632bf /src
parent0da08f2f8ef1946978f0974e9e8cdb87fece018c (diff)
downloademacs-9dde8be9cd8dc9defdae282ed24eaf2dd6bf4c31.tar.gz
emacs-9dde8be9cd8dc9defdae282ed24eaf2dd6bf4c31.zip
Fix redisplay of overlay-arrows on GUI frames
* src/xdisp.c (try_window_reusing_current_matrix) (try_cursor_movement): Disallow these optimizations if the buffer has overlay arrow(s) shown on the fringe(s). (Bug#29198)
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 69b74dc6298..5fdd39b0c94 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -16066,8 +16066,10 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp,
16066 since the handling of this_line_start_pos, etc., in redisplay 16066 since the handling of this_line_start_pos, etc., in redisplay
16067 handles the same cases. */ 16067 handles the same cases. */
16068 && !EQ (window, minibuf_window) 16068 && !EQ (window, minibuf_window)
16069 && (FRAME_WINDOW_P (f) 16069 /* When overlay arrow is shown in current buffer, point movement
16070 || !overlay_arrow_in_current_buffer_p ())) 16070 is no longer "simple", as it typically causes the overlay
16071 arrow to move as well. */
16072 && !overlay_arrow_in_current_buffer_p ())
16071 { 16073 {
16072 int this_scroll_margin, top_scroll_margin; 16074 int this_scroll_margin, top_scroll_margin;
16073 struct glyph_row *row = NULL; 16075 struct glyph_row *row = NULL;
@@ -17698,7 +17700,11 @@ try_window_reusing_current_matrix (struct window *w)
17698 /* Don't try to reuse the display if windows have been split 17700 /* Don't try to reuse the display if windows have been split
17699 or such. */ 17701 or such. */
17700 || windows_or_buffers_changed 17702 || windows_or_buffers_changed
17701 || f->cursor_type_changed) 17703 || f->cursor_type_changed
17704 /* This function cannot handle buffers where the overlay arrow
17705 is shown on the fringes, because if the arrow position
17706 changes, we cannot just reuse the current matrix. */
17707 || overlay_arrow_in_current_buffer_p ())
17702 return false; 17708 return false;
17703 17709
17704 /* Can't do this if showing trailing whitespace. */ 17710 /* Can't do this if showing trailing whitespace. */