comparison src/xdisp.c @ 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 91d9cd696b80
children 84be12f331b8
comparison
equal deleted inserted replaced
28205:1592a7956ed3 28206:07ac059dece0
2454 /* Characters having this form of property are not displayed, so 2454 /* Characters having this form of property are not displayed, so
2455 we have to find the end of the property. */ 2455 we have to find the end of the property. */
2456 space_or_image_found_p = 1; 2456 space_or_image_found_p = 1;
2457 start_pos = *position; 2457 start_pos = *position;
2458 *position = display_prop_end (it, object, start_pos); 2458 *position = display_prop_end (it, object, start_pos);
2459 value = Qnil;
2459 2460
2460 /* Let's stop at the new position and assume that all 2461 /* Let's stop at the new position and assume that all
2461 text properties change there. */ 2462 text properties change there. */
2462 it->stop_charpos = position->charpos; 2463 it->stop_charpos = position->charpos;
2463 2464
5323 int which; 5324 int which;
5324 int (*fn) (); 5325 int (*fn) ();
5325 int a1, a2, a3, a4, a5; 5326 int a1, a2, a3, a4, a5;
5326 { 5327 {
5327 Lisp_Object buffer; 5328 Lisp_Object buffer;
5328 int i, this_one, the_other, clear_buffer_p, rc; 5329 int this_one, the_other, clear_buffer_p, rc;
5329 int count = specpdl_ptr - specpdl; 5330 int count = specpdl_ptr - specpdl;
5330 5331
5331 /* If buffers aren't life, make new ones. */ 5332 /* If buffers aren't life, make new ones. */
5332 ensure_echo_area_buffers (); 5333 ensure_echo_area_buffers ();
5333 5334
7783 7784
7784 w->current_matrix->buffer = b; 7785 w->current_matrix->buffer = b;
7785 w->current_matrix->begv = BUF_BEGV (b); 7786 w->current_matrix->begv = BUF_BEGV (b);
7786 w->current_matrix->zv = BUF_ZV (b); 7787 w->current_matrix->zv = BUF_ZV (b);
7787 } 7788 }
7788 7789
7789 update_mode_lines = 0; 7790 update_mode_lines = 0;
7790 windows_or_buffers_changed = 0; 7791 windows_or_buffers_changed = 0;
7791 } 7792 }
7792 7793
7793 /* Start SIGIO interrupts coming again. Having them off during the 7794 /* Start SIGIO interrupts coming again. Having them off during the
8981 8982
8982 /* Try to redisplay starting at same place as before. 8983 /* Try to redisplay starting at same place as before.
8983 If point has not moved off frame, accept the results. */ 8984 If point has not moved off frame, accept the results. */
8984 if (!current_matrix_up_to_date_p 8985 if (!current_matrix_up_to_date_p
8985 /* Don't use try_window_reusing_current_matrix in this case 8986 /* Don't use try_window_reusing_current_matrix in this case
8986 because it can have changed the buffer. */ 8987 because a window scroll function can have changed the
8988 buffer. */
8987 || !NILP (Vwindow_scroll_functions) 8989 || !NILP (Vwindow_scroll_functions)
8988 || MINI_WINDOW_P (w) 8990 || MINI_WINDOW_P (w)
8989 || !try_window_reusing_current_matrix (w)) 8991 || !try_window_reusing_current_matrix (w))
8990 { 8992 {
8991 IF_DEBUG (debug_method_add (w, "1")); 8993 IF_DEBUG (debug_method_add (w, "1"));
9478 current matrix to get the height of the row the cursor is 9480 current matrix to get the height of the row the cursor is
9479 in. */ 9481 in. */
9480 run.current_y = first_row_y; 9482 run.current_y = first_row_y;
9481 run.desired_y = it.current_y; 9483 run.desired_y = it.current_y;
9482 run.height = it.last_visible_y - it.current_y; 9484 run.height = it.last_visible_y - it.current_y;
9483 if (run.height > 0) 9485 if (run.height > 0
9486 && run.current_y != run.desired_y)
9484 { 9487 {
9485 update_begin (f); 9488 update_begin (f);
9486 rif->update_window_begin_hook (w); 9489 rif->update_window_begin_hook (w);
9487 rif->scroll_run_hook (w, &run); 9490 rif->scroll_run_hook (w, &run);
9488 rif->update_window_end_hook (w, 0); 9491 rif->update_window_end_hook (w, 0);