[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/window.c
From: |
Richard M. Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/src/window.c |
Date: |
Tue, 18 Apr 2006 20:56:31 +0000 |
Index: emacs/src/window.c
diff -u emacs/src/window.c:1.542 emacs/src/window.c:1.543
--- emacs/src/window.c:1.542 Mon Apr 17 21:50:59 2006
+++ emacs/src/window.c Tue Apr 18 20:56:31 2006
@@ -4275,18 +4275,30 @@
while (1)
{
+ Lisp_Object first_parallel = Qnil;
+
p = XWINDOW (window);
parent = p->parent;
- /* Make sure there is a following window. */
- if (NILP (parent)
- && (horiz_flag ? 1
- : NILP (XWINDOW (window)->next)))
+ if (NILP (XWINDOW (window)->next))
{
Fset_window_configuration (old_config);
error ("No other window following this one");
}
+ /* See if this level has windows in parallel in the specified
+ direction. If so, set FIRST_PARALLEL to the first one. */
+ if (horiz_flag)
+ {
+ if (! NILP (parent) && !NILP (XWINDOW (parent)->vchild))
+ first_parallel = XWINDOW (parent)->vchild;
+ }
+ else
+ {
+ if (! NILP (parent) && !NILP (XWINDOW (parent)->hchild))
+ first_parallel = XWINDOW (parent)->hchild;
+ }
+
/* Don't make this window too small. */
if (XINT (CURSIZE (window)) + delta
< (horiz_flag ? window_min_width : window_min_height))
@@ -4304,12 +4316,11 @@
XINT (CURSIZE (window)) + delta);
/* If this window has following siblings in the desired dimension,
- make them smaller.
+ make them smaller, and exit the loop.
+
(If we reach the top of the tree and can never do this,
we will fail and report an error, above.) */
- if (horiz_flag
- ? !NILP (XWINDOW (parent)->hchild)
- : !NILP (XWINDOW (parent)->vchild))
+ if (NILP (first_parallel))
{
if (!NILP (XWINDOW (window)->next))
{
@@ -4331,9 +4342,7 @@
else
/* Here we have a chain of parallel siblings, in the other dimension.
Change the size of the other siblings. */
- for (child = (horiz_flag
- ? XWINDOW (parent)->vchild
- : XWINDOW (parent)->hchild);
+ for (child = first_parallel;
! NILP (child);
child = XWINDOW (child)->next)
if (! EQ (child, window))