# HG changeset patch # User Gerd Moellmann # Date 953555053 0 # Node ID 07ac059dece070f50c4488f013ce2c36d0b4ed23 # Parent 1592a7956ed3849fd525997b080d6c996d427941 (handle_single_display_prop): Initialize local `value'. (try_window_reusing_current_matrix): Don't call scroll run function if run's current and desired position are the same; this prevents cursor flickering. diff -r 1592a7956ed3 -r 07ac059dece0 src/xdisp.c --- a/src/xdisp.c Mon Mar 20 01:41:48 2000 +0000 +++ b/src/xdisp.c Mon Mar 20 12:24:13 2000 +0000 @@ -2456,6 +2456,7 @@ space_or_image_found_p = 1; start_pos = *position; *position = display_prop_end (it, object, start_pos); + value = Qnil; /* Let's stop at the new position and assume that all text properties change there. */ @@ -5325,7 +5326,7 @@ int a1, a2, a3, a4, a5; { Lisp_Object buffer; - int i, this_one, the_other, clear_buffer_p, rc; + int this_one, the_other, clear_buffer_p, rc; int count = specpdl_ptr - specpdl; /* If buffers aren't life, make new ones. */ @@ -7785,7 +7786,7 @@ w->current_matrix->begv = BUF_BEGV (b); w->current_matrix->zv = BUF_ZV (b); } - + update_mode_lines = 0; windows_or_buffers_changed = 0; } @@ -8983,7 +8984,8 @@ If point has not moved off frame, accept the results. */ if (!current_matrix_up_to_date_p /* Don't use try_window_reusing_current_matrix in this case - because it can have changed the buffer. */ + because a window scroll function can have changed the + buffer. */ || !NILP (Vwindow_scroll_functions) || MINI_WINDOW_P (w) || !try_window_reusing_current_matrix (w)) @@ -9480,7 +9482,8 @@ run.current_y = first_row_y; run.desired_y = it.current_y; run.height = it.last_visible_y - it.current_y; - if (run.height > 0) + if (run.height > 0 + && run.current_y != run.desired_y) { update_begin (f); rif->update_window_begin_hook (w);