aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Moellmann2000-12-23 15:32:07 +0000
committerGerd Moellmann2000-12-23 15:32:07 +0000
commit504454e82487c7a50db87edfb67461701a4e4b65 (patch)
tree2fab9e3697bed147545708d1ace29854f3a80a98
parent6eabfb2600e07362acc22f6ffcdc35e1cc758eb0 (diff)
downloademacs-504454e82487c7a50db87edfb67461701a4e4b65.tar.gz
emacs-504454e82487c7a50db87edfb67461701a4e4b65.zip
(syms_of_xdisp): Doc fix.
(redisplay_window): Remove label restore_buffers; use finish_scroll_bars instead to make sure that scroll bars are redeemed. If we don't do this, flickering can result from scroll bars being destroyed and recreated.
-rw-r--r--src/xdisp.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 295488e0c9a..8253b6c878f 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8305,7 +8305,7 @@ redisplay_internal (preserve_echo_area)
8305 /* Mark all the scroll bars to be removed; we'll redeem 8305 /* Mark all the scroll bars to be removed; we'll redeem
8306 the ones we want when we redisplay their windows. */ 8306 the ones we want when we redisplay their windows. */
8307 if (condemn_scroll_bars_hook) 8307 if (condemn_scroll_bars_hook)
8308 (*condemn_scroll_bars_hook) (f); 8308 condemn_scroll_bars_hook (f);
8309 8309
8310 if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f)) 8310 if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f))
8311 redisplay_windows (FRAME_ROOT_WINDOW (f)); 8311 redisplay_windows (FRAME_ROOT_WINDOW (f));
@@ -8313,7 +8313,7 @@ redisplay_internal (preserve_echo_area)
8313 /* Any scroll bars which redisplay_windows should have 8313 /* Any scroll bars which redisplay_windows should have
8314 nuked should now go away. */ 8314 nuked should now go away. */
8315 if (judge_scroll_bars_hook) 8315 if (judge_scroll_bars_hook)
8316 (*judge_scroll_bars_hook) (f); 8316 judge_scroll_bars_hook (f);
8317 8317
8318 /* If fonts changed, display again. */ 8318 /* If fonts changed, display again. */
8319 if (fonts_changed_p) 8319 if (fonts_changed_p)
@@ -9599,7 +9599,7 @@ redisplay_window (window, just_this_one_p)
9599 { 9599 {
9600 w->force_start = Qt; 9600 w->force_start = Qt;
9601 clear_glyph_matrix (w->desired_matrix); 9601 clear_glyph_matrix (w->desired_matrix);
9602 goto restore_buffers; 9602 goto finish_scroll_bars;
9603 } 9603 }
9604 9604
9605 if (w->cursor.vpos < 0 && !w->frozen_window_start_p) 9605 if (w->cursor.vpos < 0 && !w->frozen_window_start_p)
@@ -9632,7 +9632,7 @@ redisplay_window (window, just_this_one_p)
9632 { 9632 {
9633 clear_glyph_matrix (w->desired_matrix); 9633 clear_glyph_matrix (w->desired_matrix);
9634 if (!try_window (window, startp)) 9634 if (!try_window (window, startp))
9635 goto restore_buffers; 9635 goto finish_scroll_bars;
9636 } 9636 }
9637 } 9637 }
9638 9638
@@ -9702,7 +9702,7 @@ redisplay_window (window, just_this_one_p)
9702#endif 9702#endif
9703 9703
9704 if (fonts_changed_p) 9704 if (fonts_changed_p)
9705 goto restore_buffers; 9705 goto finish_scroll_bars;
9706 if (tem > 0) 9706 if (tem > 0)
9707 goto done; 9707 goto done;
9708 9708
@@ -9737,7 +9737,7 @@ redisplay_window (window, just_this_one_p)
9737 } 9737 }
9738 9738
9739 if (fonts_changed_p) 9739 if (fonts_changed_p)
9740 goto restore_buffers; 9740 goto finish_scroll_bars;
9741 9741
9742 if (w->cursor.vpos >= 0) 9742 if (w->cursor.vpos >= 0)
9743 { 9743 {
@@ -9785,7 +9785,7 @@ redisplay_window (window, just_this_one_p)
9785 if (rc > 0) 9785 if (rc > 0)
9786 goto done; 9786 goto done;
9787 else if (rc < 0) 9787 else if (rc < 0)
9788 goto restore_buffers; 9788 goto finish_scroll_bars;
9789 } 9789 }
9790 9790
9791 /* Finally, just choose place to start which centers point */ 9791 /* Finally, just choose place to start which centers point */
@@ -9846,7 +9846,7 @@ redisplay_window (window, just_this_one_p)
9846 have to start a new redisplay since we need to re-adjust glyph 9846 have to start a new redisplay since we need to re-adjust glyph
9847 matrices. */ 9847 matrices. */
9848 if (fonts_changed_p) 9848 if (fonts_changed_p)
9849 goto restore_buffers; 9849 goto finish_scroll_bars;
9850 9850
9851 /* If cursor did not appear assume that the middle of the window is 9851 /* If cursor did not appear assume that the middle of the window is
9852 in the first line of the window. Do it again with the next line. 9852 in the first line of the window. Do it again with the next line.
@@ -9942,7 +9942,7 @@ redisplay_window (window, just_this_one_p)
9942 } 9942 }
9943 9943
9944 if (fonts_changed_p) 9944 if (fonts_changed_p)
9945 goto restore_buffers; 9945 goto finish_scroll_bars;
9946 } 9946 }
9947 9947
9948 if (!line_number_displayed 9948 if (!line_number_displayed
@@ -10014,15 +10014,13 @@ redisplay_window (window, just_this_one_p)
10014 start = end = whole = 0; 10014 start = end = whole = 0;
10015 10015
10016 /* Indicate what this scroll bar ought to be displaying now. */ 10016 /* Indicate what this scroll bar ought to be displaying now. */
10017 (*set_vertical_scroll_bar_hook) (w, end - start, whole, start); 10017 set_vertical_scroll_bar_hook (w, end - start, whole, start);
10018 10018
10019 /* Note that we actually used the scroll bar attached to this 10019 /* Note that we actually used the scroll bar attached to this
10020 window, so it shouldn't be deleted at the end of redisplay. */ 10020 window, so it shouldn't be deleted at the end of redisplay. */
10021 (*redeem_scroll_bar_hook) (w); 10021 redeem_scroll_bar_hook (w);
10022 } 10022 }
10023 10023
10024 restore_buffers:
10025
10026 /* Restore current_buffer and value of point in it. */ 10024 /* Restore current_buffer and value of point in it. */
10027 TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint)); 10025 TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint));
10028 set_buffer_internal_1 (old); 10026 set_buffer_internal_1 (old);
@@ -14118,16 +14116,16 @@ If an integer, it specifies a number of lines.");
14118 Vmax_mini_window_height = make_float (0.25); 14116 Vmax_mini_window_height = make_float (0.25);
14119 14117
14120 DEFVAR_LISP ("resize-mini-windows", &Vresize_mini_windows, 14118 DEFVAR_LISP ("resize-mini-windows", &Vresize_mini_windows,
14121 "*How to resize the mini-window.\n\ 14119 "*How to resize mini-windows.\n\
14122A value of nil means don't automatically resize mini-windows.\n\ 14120A value of nil means don't automatically resize mini-windows.\n\
14123A value of t means resize it to fit the text displayed in it.\n\ 14121A value of t means resize them to fit the text displayed in them.\n\
14124A value of `grow-only', the default, means let mini-windows grow\n\ 14122A value of `grow-only', the default, means let mini-windows grow\n\
14125only, until the its display becomes empty, at which point the mini-window\n\ 14123only, until their display becomes empty, at which point the windows\n\
14126goes back to its normal size."); 14124go back to their normal size.");
14127 Vresize_mini_windows = Qgrow_only; 14125 Vresize_mini_windows = Qgrow_only;
14128 14126
14129 DEFVAR_BOOL ("cursor-in-non-selected-windows", 14127 DEFVAR_BOOL ("cursor-in-non-selected-windows",
14130 &cursor_in_non_selected_windows, 14128 cursor_in_non_selected_windows,
14131 "*Non-nil means display a hollow cursor in non-selected windows.\n\ 14129 "*Non-nil means display a hollow cursor in non-selected windows.\n\
14132Nil means don't display a cursor there."); 14130Nil means don't display a cursor there.");
14133 cursor_in_non_selected_windows = 1; 14131 cursor_in_non_selected_windows = 1;