aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.c
diff options
context:
space:
mode:
authorDmitry Antipov2013-08-12 13:34:00 +0400
committerDmitry Antipov2013-08-12 13:34:00 +0400
commitd2e113bc86fba063f39cf5d1893ee47b4cf43a9a (patch)
tree5823ca9a1afdf958f3a9457f90ade72e38732949 /src/window.c
parent94fcd171894e3a14d3548c028c4229229e32d184 (diff)
downloademacs-d2e113bc86fba063f39cf5d1893ee47b4cf43a9a.tar.gz
emacs-d2e113bc86fba063f39cf5d1893ee47b4cf43a9a.zip
Avoid looping over all frame windows to freeze and unfreeze.
* window.h (struct window): Drop frozen_window_start_p. (freeze_window_starts): Drop prototype. * frame.h (struct frame): New frozen_window_starts flag. (FRAME_WINDOWS_FROZEN): New macro. * window.c (freeze_window_start, freeze_window_starts): Remove. (select_window, replace_window): Adjust users. * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN. (window_frozen_p): New function. (redisplay_window): Use it.
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c35
1 files changed, 0 insertions, 35 deletions
diff --git a/src/window.c b/src/window.c
index 31b5b2717a4..47a7b58ba9b 100644
--- a/src/window.c
+++ b/src/window.c
@@ -69,7 +69,6 @@ static int get_leaf_windows (struct window *, struct window **, int);
69static void window_scroll (Lisp_Object, EMACS_INT, bool, int); 69static void window_scroll (Lisp_Object, EMACS_INT, bool, int);
70static void window_scroll_pixel_based (Lisp_Object, int, bool, int); 70static void window_scroll_pixel_based (Lisp_Object, int, bool, int);
71static void window_scroll_line_based (Lisp_Object, int, bool, int); 71static void window_scroll_line_based (Lisp_Object, int, bool, int);
72static int freeze_window_start (struct window *, void *);
73static Lisp_Object window_list (void); 72static Lisp_Object window_list (void);
74static int add_window_to_list (struct window *, void *); 73static int add_window_to_list (struct window *, void *);
75static Lisp_Object next_window (Lisp_Object, Lisp_Object, 74static Lisp_Object next_window (Lisp_Object, Lisp_Object,
@@ -499,7 +498,6 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
499 CHECK_LIVE_WINDOW (window); 498 CHECK_LIVE_WINDOW (window);
500 499
501 w = XWINDOW (window); 500 w = XWINDOW (window);
502 w->frozen_window_start_p = 0;
503 501
504 /* Make the selected window's buffer current. */ 502 /* Make the selected window's buffer current. */
505 Fset_buffer (w->contents); 503 Fset_buffer (w->contents);
@@ -2055,7 +2053,6 @@ replace_window (Lisp_Object old, Lisp_Object new, int setflag)
2055 wset_window_end_vpos (n, make_number (0)); 2053 wset_window_end_vpos (n, make_number (0));
2056 wset_window_end_pos (n, make_number (0)); 2054 wset_window_end_pos (n, make_number (0));
2057 n->window_end_valid = 0; 2055 n->window_end_valid = 0;
2058 n->frozen_window_start_p = 0;
2059 } 2056 }
2060 2057
2061 tem = o->next; 2058 tem = o->next;
@@ -6453,38 +6450,6 @@ foreach_window_1 (struct window *w, int (*fn) (struct window *, void *), void *u
6453 return cont; 6450 return cont;
6454} 6451}
6455 6452
6456
6457/* Freeze or unfreeze the window start of W unless it is a
6458 mini-window or the selected window. FREEZE_P non-null means freeze
6459 the window start. */
6460
6461static int
6462freeze_window_start (struct window *w, void *freeze_p)
6463{
6464 if (MINI_WINDOW_P (w)
6465 || (WINDOWP (selected_window) /* Can be nil in corner cases. */
6466 && (w == XWINDOW (selected_window)
6467 || (MINI_WINDOW_P (XWINDOW (selected_window))
6468 && ! NILP (Vminibuf_scroll_window)
6469 && w == XWINDOW (Vminibuf_scroll_window)))))
6470 freeze_p = NULL;
6471
6472 w->frozen_window_start_p = freeze_p != NULL;
6473 return 1;
6474}
6475
6476
6477/* Freeze or unfreeze the window starts of all leaf windows on frame
6478 F, except the selected window and a mini-window. FREEZE_P non-zero
6479 means freeze the window start. */
6480
6481void
6482freeze_window_starts (struct frame *f, bool freeze_p)
6483{
6484 foreach_window (f, freeze_window_start, freeze_p ? f : 0);
6485}
6486
6487
6488/*********************************************************************** 6453/***********************************************************************
6489 Initialization 6454 Initialization
6490 ***********************************************************************/ 6455 ***********************************************************************/