From 94a4e898b6cbf8375aa8eddb07a7d63a62b55e15 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 14 Aug 2013 11:25:45 +0400 Subject: [PATCH] * xdisp.c (redisplay_window): If window_end_valid is cleared due to non-zero windows_or_buffers_changed, clear current_matrix_up_to_date_p and so do not call to try_cursor_movement for that window. --- src/ChangeLog | 3 +++ src/xdisp.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index a120cf1b182..c8a1de49d68 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -10,6 +10,9 @@ * xdisp.c (adjust_window_ends): Move duplicated code to new function. (try_window, try_window_reusing_current_matrix, try_window_id): Use it. + (redisplay_window): If window_end_valid is cleared due to non-zero + windows_or_buffers_changed, clear current_matrix_up_to_date_p and + so do not call to try_cursor_movement for that window. 2013-08-14 Dmitry Antipov diff --git a/src/xdisp.c b/src/xdisp.c index 82b528cdafd..4d0b0ab9974 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -15449,8 +15449,8 @@ redisplay_window (Lisp_Object window, int just_this_one_p) && !current_buffer->clip_changed && !window_outdated (w)); - /* When windows_or_buffers_changed is non-zero, we can't rely on - the window end being valid, so set it to nil there. */ + /* When windows_or_buffers_changed is non-zero, we can't rely + on the window end being valid, so set it to zero there. */ if (windows_or_buffers_changed) { /* If window starts on a continuation line, maybe adjust the @@ -15459,6 +15459,9 @@ redisplay_window (Lisp_Object window, int just_this_one_p) compute_window_start_on_continuation_line (w); w->window_end_valid = 0; + /* If so, we also can't rely on current matrix + and should not fool try_cursor_movement below. */ + current_matrix_up_to_date_p = 0; } /* Some sanity checks. */ -- 2.39.2