emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/window.c


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/src/window.c
Date: Fri, 04 Apr 2003 01:24:11 -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);
+     }
  }
  
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]