Commit fdaf534a authored by Martin Rudalics's avatar Martin Rudalics
Browse files

Fix and rewrite doc on window recombining facilities.

* window.c (Fsplit_window_internal): Set combination limit of
new parent window to t iff Vwindow_combination_limit is t;
fixing a regression introduced with the change from 2012-09-22.
(Fwindow_combination_limit, Fset_window_combination_limit): Fix
doc-strings.

* elisp.texi (Top): Add Recombining Windows to menu.
* windows.texi (Recombining Windows): New subsection.
(Splitting Windows): Rewrite text on handling of window
combinations and move it to new subsection.
parent 031b2ea7
2012-11-07 Martin Rudalics <rudalics@gmx.at>
* elisp.texi (Top): Add Recombining Windows to menu.
* windows.texi (Recombining Windows): New subsection.
(Splitting Windows): Rewrite text on handling of window
combinations and move it to new subsection.
2012-11-07 Chong Yidong <cyd@gnu.org> 2012-11-07 Chong Yidong <cyd@gnu.org>
* variables.texi (Creating Buffer-Local): Document setq-local and * variables.texi (Creating Buffer-Local): Document setq-local and
......
...@@ -1001,6 +1001,8 @@ Windows ...@@ -1001,6 +1001,8 @@ Windows
* Resizing Windows:: Changing the sizes of windows. * Resizing Windows:: Changing the sizes of windows.
* Splitting Windows:: Splitting one window into two windows. * Splitting Windows:: Splitting one window into two windows.
* Deleting Windows:: Deleting a window gives its space to other windows. * Deleting Windows:: Deleting a window gives its space to other windows.
* Recombining Windows:: Preserving the frame layout when splitting and
deleting windows.
* Selecting Windows:: The selected window is the one that you edit in. * Selecting Windows:: The selected window is the one that you edit in.
* Cyclic Window Ordering:: Moving around the existing windows. * Cyclic Window Ordering:: Moving around the existing windows.
* Buffers and Windows:: Each window displays the contents of a buffer. * Buffers and Windows:: Each window displays the contents of a buffer.
......
This diff is collapsed.
...@@ -834,7 +834,7 @@ recursive invocations. ...@@ -834,7 +834,7 @@ recursive invocations.
+++ +++
*** The functions get-lru-window, get-mru-window and get-largest-window *** The functions get-lru-window, get-mru-window and get-largest-window
now accept a third argument to avoid choosing the selected window. now accept a third argument to avoid choosing the selected window.
+++
*** Additional values recognized for option `window-combination-limit'. *** Additional values recognized for option `window-combination-limit'.
*** New macro `with-temp-buffer-window'. *** New macro `with-temp-buffer-window'.
......
2012-11-07 Martin Rudalics <rudalics@gmx.at>
* window.c (Fsplit_window_internal): Set combination limit of
new parent window to t iff Vwindow_combination_limit is t;
fixing a regression introduced with the change from 2012-09-22.
(Fwindow_combination_limit, Fset_window_combination_limit): Fix
doc-strings.
2012-11-06 Eli Zaretskii <eliz@gnu.org> 2012-11-06 Eli Zaretskii <eliz@gnu.org>
   
* xdisp.c (try_scrolling): Fix correction of aggressive-scroll * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
......
...@@ -600,10 +600,12 @@ Return nil if WINDOW has no previous sibling. */) ...@@ -600,10 +600,12 @@ Return nil if WINDOW has no previous sibling. */)
DEFUN ("window-combination-limit", Fwindow_combination_limit, Swindow_combination_limit, 1, 1, 0, DEFUN ("window-combination-limit", Fwindow_combination_limit, Swindow_combination_limit, 1, 1, 0,
doc: /* Return combination limit of window WINDOW. doc: /* Return combination limit of window WINDOW.
WINDOW must be a valid window and defaults to the selected one. If the return value is nil, child windows of WINDOW can be recombined
If the return value is nil, child windows of WINDOW can be recombined with with WINDOW's siblings. A return value of t means that child windows of
WINDOW's siblings. A return value of t means that child windows of WINDOW are never \(re-)combined with WINDOW's siblings.
WINDOW are never \(re-)combined with WINDOW's siblings. */)
WINDOW must be a valid window. The return value is meaningful for
internal windows only. */)
(Lisp_Object window) (Lisp_Object window)
{ {
return decode_valid_window (window)->combination_limit; return decode_valid_window (window)->combination_limit;
...@@ -611,11 +613,13 @@ WINDOW are never \(re-)combined with WINDOW's siblings. */) ...@@ -611,11 +613,13 @@ WINDOW are never \(re-)combined with WINDOW's siblings. */)
DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_window_combination_limit, 2, 2, 0, DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_window_combination_limit, 2, 2, 0,
doc: /* Set combination limit of window WINDOW to LIMIT; return LIMIT. doc: /* Set combination limit of window WINDOW to LIMIT; return LIMIT.
WINDOW must be a valid window and defaults to the selected one.
If LIMIT is nil, child windows of WINDOW can be recombined with WINDOW's If LIMIT is nil, child windows of WINDOW can be recombined with WINDOW's
siblings. LIMIT t means that child windows of WINDOW are never siblings. LIMIT t means that child windows of WINDOW are never
\(re-)combined with WINDOW's siblings. Other values are reserved for \(re-)combined with WINDOW's siblings. Other values are reserved for
future use. */) future use.
WINDOW must be a valid window. Setting the combination limit is
meaningful for internal windows only. */)
(Lisp_Object window, Lisp_Object limit) (Lisp_Object window, Lisp_Object limit)
{ {
wset_combination_limit (decode_valid_window (window), limit); wset_combination_limit (decode_valid_window (window), limit);
...@@ -3892,9 +3896,10 @@ set correctly. See the code of `split-window' for how this is done. */) ...@@ -3892,9 +3896,10 @@ set correctly. See the code of `split-window' for how this is done. */)
make_parent_window (old, horflag); make_parent_window (old, horflag);
p = XWINDOW (o->parent); p = XWINDOW (o->parent);
/* Store t in the new parent's combination_limit slot to avoid if (EQ (Vwindow_combination_limit, Qt))
that its children get merged into another window. */ /* Store t in the new parent's combination_limit slot to avoid
wset_combination_limit (p, Qt); that its children get merged into another window. */
wset_combination_limit (p, Qt);
/* These get applied below. */ /* These get applied below. */
wset_new_total (p, horflag ? o->total_cols : o->total_lines); wset_new_total (p, horflag ? o->total_cols : o->total_lines);
wset_new_normal (p, new_normal); wset_new_normal (p, new_normal);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment