changeset 28206:07ac059dece0

(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.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 20 Mar 2000 12:24:13 +0000
parents 1592a7956ed3
children fd3ece8a61e5
files src/xdisp.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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);