[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/window.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/window.c |
Date: |
Mon, 31 Mar 2003 15:35:51 -0500 |
Index: emacs/src/window.c
diff -c emacs/src/window.c:1.437 emacs/src/window.c:1.438
*** emacs/src/window.c:1.437 Fri Mar 21 08:52:06 2003
--- emacs/src/window.c Mon Mar 31 15:35:51 2003
***************
*** 52,58 ****
Lisp_Object Qwindowp, Qwindow_live_p, Qwindow_configuration_p;
Lisp_Object Qwindow_size_fixed;
extern Lisp_Object Qleft_margin, Qright_margin;
- extern Lisp_Object Qheight, Qwidth;
static int displayed_window_lines P_ ((struct window *));
static struct window *decode_window P_ ((Lisp_Object));
--- 52,57 ----
***************
*** 2637,2642 ****
--- 2636,2670 ----
int nodelete;
{
size_window (window, width, 1, nodelete);
+ }
+
+ /* Change window heights in windows rooted in WINDOW by N lines. */
+
+ void
+ change_window_heights (window, n)
+ Lisp_Object window;
+ int n;
+ {
+ struct window *w = XWINDOW (window);
+
+ XSETFASTINT (w->top, XFASTINT (w->top) + n);
+ XSETFASTINT (w->height, XFASTINT (w->height) - n);
+
+ if (INTEGERP (w->orig_top))
+ XSETFASTINT (w->orig_top, XFASTINT (w->orig_top) + n);
+ if (INTEGERP (w->orig_height))
+ XSETFASTINT (w->orig_height, XFASTINT (w->orig_height) - n);
+
+ /* Handle just the top child in a vertical split. */
+ if (!NILP (w->vchild))
+ change_window_heights (w->vchild, n);
+
+ /* Adjust all children in a horizontal split. */
+ for (window = w->hchild; !NILP (window); window = w->next)
+ {
+ w = XWINDOW (window);
+ change_window_heights (window, n);
+ }
}