diff options
| author | Eli Zaretskii | 2018-12-11 12:32:11 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2018-12-11 12:32:11 +0200 |
| commit | 24b5026fb6b622966fd773178608617fa2f8add2 (patch) | |
| tree | a778a79f06a46076bc812b0454a0e3805607ae5d /src | |
| parent | 5d1b158feb693847015326b3eae6605c9794b47d (diff) | |
| download | emacs-24b5026fb6b622966fd773178608617fa2f8add2.tar.gz emacs-24b5026fb6b622966fd773178608617fa2f8add2.zip | |
Fix redisplay when a window's scroll bar or fringes are changed
* src/window.c (set_window_fringes, set_window_scroll_bars):
Set windows_or_buffers_changed flag to cause immediate
thorough redisplay of a window when scroll bars or fringes are
changed. (Bug#33694)
Diffstat (limited to 'src')
| -rw-r--r-- | src/window.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c index 5d99098cba1..6026313e5a4 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -7137,6 +7137,11 @@ set_window_fringes (struct window *w, Lisp_Object left_width, | |||
| 7137 | w->right_fringe_width = right; | 7137 | w->right_fringe_width = right; |
| 7138 | w->fringes_outside_margins = outside; | 7138 | w->fringes_outside_margins = outside; |
| 7139 | 7139 | ||
| 7140 | /* This is needed to trigger immediate redisplay of the window | ||
| 7141 | when its fringes are changed, because fringes are redrawn | ||
| 7142 | only if update_window is called, so we must trigger that even | ||
| 7143 | if the window's glyph matrices did not change at all. */ | ||
| 7144 | windows_or_buffers_changed = 35; | ||
| 7140 | return w; | 7145 | return w; |
| 7141 | } | 7146 | } |
| 7142 | else | 7147 | else |
| @@ -7254,6 +7259,12 @@ set_window_scroll_bars (struct window *w, Lisp_Object width, | |||
| 7254 | wset_horizontal_scroll_bar_type (w, Qnil); | 7259 | wset_horizontal_scroll_bar_type (w, Qnil); |
| 7255 | #endif | 7260 | #endif |
| 7256 | 7261 | ||
| 7262 | /* This is needed to trigger immediate redisplay of the window when | ||
| 7263 | scroll bars are changed, because scroll bars are redisplayed only | ||
| 7264 | if more than a single window needs to be considered, see | ||
| 7265 | redisplay_internal. */ | ||
| 7266 | if (changed) | ||
| 7267 | windows_or_buffers_changed = 31; | ||
| 7257 | return changed ? w : NULL; | 7268 | return changed ? w : NULL; |
| 7258 | } | 7269 | } |
| 7259 | 7270 | ||