diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2013-10-08 18:56:15 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2013-10-08 18:56:15 +0400 |
commit | ecab13d4aa458544c604ece77e2ecdf0b9910649 (patch) | |
tree | 1a418825805c7ea2011a13483393b9c2c4627103 /src/dispnew.c | |
parent | ec95982c36b5ac5dcbf13f5e8173caecea74881d (diff) |
* dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment.
(redraw_frame, update_frame): Adjust users.
* dispextern.h (set_window_update_flags): Adjust prototype.
* xdisp.c (redisplay_internal): When updating all frames with zero
windows_or_buffers_changed, assume that only the windows that shows
current buffer should be really updated.
Diffstat (limited to 'src/dispnew.c')
-rw-r--r-- | src/dispnew.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/dispnew.c b/src/dispnew.c index 27167f4e1e..8507a330a9 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -2910,7 +2910,7 @@ redraw_frame (struct frame *f) /* Mark all windows as inaccurate, so that every window will have its redisplay done. */ mark_window_display_accurate (FRAME_ROOT_WINDOW (f), 0); - set_window_update_flags (XWINDOW (FRAME_ROOT_WINDOW (f)), 1); + set_window_update_flags (XWINDOW (FRAME_ROOT_WINDOW (f)), NULL, 1); f->garbaged = 0; } @@ -3041,7 +3041,7 @@ update_frame (struct frame *f, bool force_p, bool inhibit_hairy_id_p) do_pause: /* Reset flags indicating that a window should be updated. */ - set_window_update_flags (root_window, 0); + set_window_update_flags (root_window, NULL, 0); display_completed = !paused_p; return paused_p; @@ -3820,17 +3820,18 @@ set_window_cursor_after_update (struct window *w) } -/* Set WINDOW->must_be_updated_p to ON_P for all windows in the window - tree rooted at W. */ +/* If B is NULL, set WINDOW->must_be_updated_p to ON_P for all windows in + the window tree rooted at W. Otherwise set WINDOW->must_be_updated_p + to ON_P only for windows that displays B. */ void -set_window_update_flags (struct window *w, bool on_p) +set_window_update_flags (struct window *w, struct buffer *b, bool on_p) { while (w) { if (WINDOWP (w->contents)) - set_window_update_flags (XWINDOW (w->contents), on_p); - else + set_window_update_flags (XWINDOW (w->contents), b, on_p); + else if (!(b && b != XBUFFER (w->contents))) w->must_be_updated_p = on_p; w = NILP (w->next) ? 0 : XWINDOW (w->next); |