diff options
| author | Gerd Moellmann | 2000-12-23 15:32:07 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-12-23 15:32:07 +0000 |
| commit | 504454e82487c7a50db87edfb67461701a4e4b65 (patch) | |
| tree | 2fab9e3697bed147545708d1ace29854f3a80a98 | |
| parent | 6eabfb2600e07362acc22f6ffcdc35e1cc758eb0 (diff) | |
| download | emacs-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.c | 34 |
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\ |
| 14122 | A value of nil means don't automatically resize mini-windows.\n\ | 14120 | A value of nil means don't automatically resize mini-windows.\n\ |
| 14123 | A value of t means resize it to fit the text displayed in it.\n\ | 14121 | A value of t means resize them to fit the text displayed in them.\n\ |
| 14124 | A value of `grow-only', the default, means let mini-windows grow\n\ | 14122 | A value of `grow-only', the default, means let mini-windows grow\n\ |
| 14125 | only, until the its display becomes empty, at which point the mini-window\n\ | 14123 | only, until their display becomes empty, at which point the windows\n\ |
| 14126 | goes back to its normal size."); | 14124 | go 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\ |
| 14132 | Nil means don't display a cursor there."); | 14130 | Nil means don't display a cursor there."); |
| 14133 | cursor_in_non_selected_windows = 1; | 14131 | cursor_in_non_selected_windows = 1; |