summaryrefslogtreecommitdiff
path: root/src/dispnew.c
diff options
context:
space:
mode:
authorDmitry Antipov <dmantipov@yandex.ru>2013-10-08 18:56:15 +0400
committerDmitry Antipov <dmantipov@yandex.ru>2013-10-08 18:56:15 +0400
commitecab13d4aa458544c604ece77e2ecdf0b9910649 (patch)
tree1a418825805c7ea2011a13483393b9c2c4627103 /src/dispnew.c
parentec95982c36b5ac5dcbf13f5e8173caecea74881d (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.c15
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);