summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog3
-rw-r--r--src/xdisp.c7
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 <dmantipov@yandex.ru>
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. */