Mercurial > emacs
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); |