aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2011-09-24 14:19:20 -0400
committerChong Yidong2011-09-24 14:19:20 -0400
commit0a2132baa8e795b72d35833209132d23a1553bc2 (patch)
treede54a62be203b5bdf25a824bce36d454de778030
parent25b4bfa0d11557a8041362ead77b8b1aff0f330d (diff)
downloademacs-0a2132baa8e795b72d35833209132d23a1553bc2.tar.gz
emacs-0a2132baa8e795b72d35833209132d23a1553bc2.zip
Window-related updates to NEWS and Emacs manual.
* etc/NEWS: Reorganize, placing user options in Changes section. * doc/emacs/buffers.texi (Select Buffer): Clarify description of buffer-switching commands. Add xref to Window Display node. Don't repeat confirm-nonexistent-file-or-buffer description from Visiting node. Remove even-window-heights. * doc/emacs/frames.texi (Special Buffer Frames): Add xref to Window Choice. * doc/emacs/windows.texi (Pop Up Window): Defer discussion of window splitting to the Window Choice node. Add index entries. (Force Same Window): Node deleted. (Displaying Buffers, Window Choice): New nodes.
-rw-r--r--doc/emacs/ChangeLog14
-rw-r--r--doc/emacs/buffers.texi42
-rw-r--r--doc/emacs/emacs.texi3
-rw-r--r--doc/emacs/frames.texi18
-rw-r--r--doc/emacs/windows.texi205
-rw-r--r--etc/NEWS88
6 files changed, 229 insertions, 141 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 163eabed2a6..ac913fc3264 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,17 @@
12011-09-24 Chong Yidong <cyd@stupidchicken.com>
2
3 * windows.texi (Pop Up Window): Defer discussion of window
4 splitting to the Window Choice node. Add index entries.
5 (Force Same Window): Node deleted.
6 (Displaying Buffers, Window Choice): New nodes.
7
8 * buffers.texi (Select Buffer): Clarify description of
9 buffer-switching commands. Add xref to Window Display node.
10 Don't repeat confirm-nonexistent-file-or-buffer description from
11 Visiting node. Remove even-window-heights.
12
13 * frames.texi (Special Buffer Frames): Add xref to Window Choice.
14
12011-09-18 Chong Yidong <cyd@stupidchicken.com> 152011-09-18 Chong Yidong <cyd@stupidchicken.com>
2 16
3 * cmdargs.texi (Icons X): Fix description of Emacs icon. 17 * cmdargs.texi (Icons X): Fix description of Emacs icon.
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index c4880af2b5d..b82f3fac7d4 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -91,9 +91,9 @@ selected buffer other than the current buffer.
91@var{bufname} @key{RET}}. This runs the command 91@var{bufname} @key{RET}}. This runs the command
92@code{switch-to-buffer} with argument @var{bufname}. While entering 92@code{switch-to-buffer} with argument @var{bufname}. While entering
93the buffer name, you can use the usual minibuffer completion and 93the buffer name, you can use the usual minibuffer completion and
94history commands (@pxref{Minibuffer}). An empty argument to @kbd{C-x 94history commands (@pxref{Minibuffer}). An empty input specifies the
95b} specifies the buffer that was current most recently among those not 95buffer that was current most recently among those not now displayed in
96now displayed in any window. 96any window.
97 97
98@cindex minibuffer confirmation 98@cindex minibuffer confirmation
99@cindex confirming in the minibuffer 99@cindex confirming in the minibuffer
@@ -107,16 +107,8 @@ catches a common mistake, in which one types @key{RET} before
107realizing that @key{TAB} did not complete far enough to yield the 107realizing that @key{TAB} did not complete far enough to yield the
108desired buffer name (@pxref{Completion}). Emacs asks for confirmation 108desired buffer name (@pxref{Completion}). Emacs asks for confirmation
109by putting the message @samp{[Confirm]} in the minibuffer; type 109by putting the message @samp{[Confirm]} in the minibuffer; type
110@key{RET} again to confirm and visit the buffer. 110@key{RET} again to confirm and visit the buffer. @xref{Visiting}, for
111 111information about modifying this behavior.
112@vindex confirm-nonexistent-file-or-buffer
113 The variable @code{confirm-nonexistent-file-or-buffer} controls
114whether Emacs asks for confirmation before visiting a buffer that did
115not previously exist. The default value, @code{after-completion},
116gives the behavior we have just described. If the value is
117@code{nil}, Emacs never asks for confirmation; for any other
118non-@code{nil} value, Emacs always asks for confirmation. This
119variable also affects the @code{find-file} command (@pxref{Visiting}).
120 112
121 One reason to create a new buffer is to use it for making temporary 113 One reason to create a new buffer is to use it for making temporary
122notes. If you try to save it, Emacs asks for the file name to use. 114notes. If you try to save it, Emacs asks for the file name to use.
@@ -136,36 +128,26 @@ of most recent selection in the current frame), while @kbd{C-x @key{LEFT}}
136 128
137@kindex C-x 4 b 129@kindex C-x 4 b
138@findex switch-to-buffer-other-window 130@findex switch-to-buffer-other-window
139@vindex even-window-heights
140 To select a buffer in a window other than the current one, type 131 To select a buffer in a window other than the current one, type
141@kbd{C-x 4 b} (@code{switch-to-buffer-other-window}). This prompts 132@kbd{C-x 4 b} (@code{switch-to-buffer-other-window}). This prompts
142for a buffer name using the minibuffer, displays that buffer in 133for a buffer name using the minibuffer, displays that buffer in
143another window, and selects that window. By default, if displaying 134another window, and selects that window.
144the buffer causes two vertically adjacent windows to be displayed, the
145heights of those windows are evened out; to countermand that and
146preserve the window configuration, set the variable
147@code{even-window-heights} to @code{nil}.
148 135
149@kindex C-x 5 b 136@kindex C-x 5 b
150@findex switch-to-buffer-other-frame 137@findex switch-to-buffer-other-frame
151 Similarly, @kbd{C-x 5 b} (@code{switch-to-buffer-other-frame}) 138 Similarly, @kbd{C-x 5 b} (@code{switch-to-buffer-other-frame})
152prompts for a buffer name, displays that buffer in another frame, and 139prompts for a buffer name, displays that buffer in another frame, and
153selects that frame. 140selects that frame. If the buffer is already being shown in a window
141on another frame, Emacs selects that window and frame instead of
142creating a new frame.
143
144 @xref{Displaying Buffers}, for how the @kbd{C-x 4 b} and @kbd{C-x 5
145b} commands get the window and/or frame to display in.
154 146
155 In addition, @kbd{C-x C-f}, and any other command for visiting a 147 In addition, @kbd{C-x C-f}, and any other command for visiting a
156file, can also be used to switch to an existing file-visiting buffer. 148file, can also be used to switch to an existing file-visiting buffer.
157@xref{Visiting}. 149@xref{Visiting}.
158 150
159@vindex display-buffer-reuse-frames
160 You can control how certain buffers are handled by these commands by
161customizing the variables @code{special-display-buffer-names},
162@code{special-display-regexps}, @code{same-window-buffer-names}, and
163@code{same-window-regexps}. See @ref{Force Same Window}, and
164@ref{Special Buffer Frames}, for more about these variables. In
165addition, if the value of @code{display-buffer-reuse-frames} is
166non-@code{nil}, and the buffer you want to switch to is already
167displayed in some frame, Emacs will just raise that frame.
168
169@findex goto-line 151@findex goto-line
170 @kbd{C-u M-g M-g}, that is @code{goto-line} with a plain prefix 152 @kbd{C-u M-g M-g}, that is @code{goto-line} with a plain prefix
171argument, reads a number @var{n} using the minibuffer, selects the 153argument, reads a number @var{n} using the minibuffer, selects the
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 2ba4af712af..bb675b61cff 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -488,9 +488,8 @@ Multiple Windows
488* Split Window:: New windows are made by splitting existing windows. 488* Split Window:: New windows are made by splitting existing windows.
489* Other Window:: Moving to another window or doing something to it. 489* Other Window:: Moving to another window or doing something to it.
490* Pop Up Window:: Finding a file or buffer in another window. 490* Pop Up Window:: Finding a file or buffer in another window.
491* Force Same Window:: Forcing certain buffers to appear in the selected
492 window rather than in another window.
493* Change Window:: Deleting windows and changing their sizes. 491* Change Window:: Deleting windows and changing their sizes.
492* Displaying Buffers:: How Emacs picks a window for displaying a buffer.
494* Window Convenience:: Convenience functions for window handling. 493* Window Convenience:: Convenience functions for window handling.
495 494
496Frames and Graphical Displays 495Frames and Graphical Displays
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 8ca598c3348..619252503a9 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -850,11 +850,12 @@ each others' edits if they are not careful.
850 850
851@vindex special-display-buffer-names 851@vindex special-display-buffer-names
852 You can make certain chosen buffers, which Emacs normally displays 852 You can make certain chosen buffers, which Emacs normally displays
853in ``another window,'' appear in special frames of their own. To do 853in ``some other window'' (@pxref{Displaying Buffers}), appear in
854this, set the variable @code{special-display-buffer-names} to a list 854special frames of their own. To do this, set the variable
855of buffer names; any buffer whose name is in that list automatically 855@code{special-display-buffer-names} to a list of buffer names; any
856gets a special frame, when an Emacs command wants to display it ``in 856buffer whose name is in that list automatically gets a special frame.
857another window.'' 857@xref{Window Choice}, for how this fits in with the other ways for
858Emacs to choose a window to display in.
858 859
859 For example, if you set the variable this way, 860 For example, if you set the variable this way,
860 861
@@ -906,13 +907,6 @@ where @var{function} is a symbol. Then the frame is constructed by
906calling @var{function}; its first argument is the buffer, and its 907calling @var{function}; its first argument is the buffer, and its
907remaining arguments are @var{args}. 908remaining arguments are @var{args}.
908 909
909 An analogous feature lets you specify buffers which should be
910displayed in the selected window. @xref{Force Same Window}. The
911same-window feature takes precedence over the special-frame feature;
912therefore, if you add a buffer name to
913@code{special-display-buffer-names} and it has no effect, check to see
914whether that feature is also in use for the same buffer name.
915
916@node Frame Parameters 910@node Frame Parameters
917@section Setting Frame Parameters 911@section Setting Frame Parameters
918@cindex Auto-Raise mode 912@cindex Auto-Raise mode
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 6aa8a06778b..dc92e4a519c 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -18,9 +18,8 @@ one frame.
18* Split Window:: New windows are made by splitting existing windows. 18* Split Window:: New windows are made by splitting existing windows.
19* Other Window:: Moving to another window or doing something to it. 19* Other Window:: Moving to another window or doing something to it.
20* Pop Up Window:: Finding a file or buffer in another window. 20* Pop Up Window:: Finding a file or buffer in another window.
21* Force Same Window:: Forcing certain buffers to appear in the selected
22 window rather than in another window.
23* Change Window:: Deleting windows and changing their sizes. 21* Change Window:: Deleting windows and changing their sizes.
22* Displaying Buffers:: How Emacs picks a window for displaying a buffer.
24* Window Convenience:: Convenience functions for window handling. 23* Window Convenience:: Convenience functions for window handling.
25@end menu 24@end menu
26 25
@@ -191,84 +190,47 @@ feature is off by default.
191 190
192@cindex selecting buffers in other windows 191@cindex selecting buffers in other windows
193@kindex C-x 4 192@kindex C-x 4
194 @kbd{C-x 4} is a prefix key for commands that select another window 193 @kbd{C-x 4} is a prefix key for a variety of commands that switch to
195(splitting the window if there is only one) and select a buffer in that 194a buffer in a different window---either another existing window, or a
196window. Different @kbd{C-x 4} commands have different ways of finding the 195new window created by splitting the selected window. @xref{Window
197buffer to select. 196Choice}, for how Emacs picks or creates the window to use.
198 197
199@table @kbd 198@table @kbd
199@findex switch-to-buffer-other-window
200@item C-x 4 b @var{bufname} @key{RET} 200@item C-x 4 b @var{bufname} @key{RET}
201Select buffer @var{bufname} in another window. This runs 201Select buffer @var{bufname} in another window
202@code{switch-to-buffer-other-window}. 202(@code{switch-to-buffer-other-window}).
203
204@findex display-buffer
203@item C-x 4 C-o @var{bufname} @key{RET} 205@item C-x 4 C-o @var{bufname} @key{RET}
204Display buffer @var{bufname} in another window, but 206Display buffer @var{bufname} in some window, without trying to select
205don't select that buffer or that window. This runs 207it (@code{display-buffer}). @xref{Displaying Buffers}, for details
206@code{display-buffer}. 208about how the window is chosen.
209
210@findex find-file-other-window
207@item C-x 4 f @var{filename} @key{RET} 211@item C-x 4 f @var{filename} @key{RET}
208Visit file @var{filename} and select its buffer in another window. This 212Visit file @var{filename} and select its buffer in another window
209runs @code{find-file-other-window}. @xref{Visiting}. 213(@code{find-file-other-window}). @xref{Visiting}.
214
215@findex dired-other-window
210@item C-x 4 d @var{directory} @key{RET} 216@item C-x 4 d @var{directory} @key{RET}
211Select a Dired buffer for directory @var{directory} in another window. 217Select a Dired buffer for directory @var{directory} in another window
212This runs @code{dired-other-window}. @xref{Dired}. 218(@code{dired-other-window}). @xref{Dired}.
219
220@findex mail-other-window
213@item C-x 4 m 221@item C-x 4 m
214Start composing a mail message in another window. This runs 222Start composing a mail message, similar to @kbd{C-x m} (@pxref{Sending
215@code{mail-other-window}; its same-window analogue is @kbd{C-x m} 223Mail}), but in another window (@code{mail-other-window}).
216(@pxref{Sending Mail}). 224
225@findex find-tag-other-window
217@item C-x 4 . 226@item C-x 4 .
218Find a tag in the current tags table, in another window. This runs 227Find a tag in the current tags table, similar to @kbd{M-.}
219@code{find-tag-other-window}, the multiple-window variant of @kbd{M-.} 228(@pxref{Tags}), but in another window (@code{find-tag-other-window}).
220(@pxref{Tags}).
221@item C-x 4 r @var{filename} @key{RET} 229@item C-x 4 r @var{filename} @key{RET}
222Visit file @var{filename} read-only, and select its buffer in another 230Visit file @var{filename} read-only, and select its buffer in another
223window. This runs @code{find-file-read-only-other-window}. 231window (@code{find-file-read-only-other-window}). @xref{Visiting}.
224@xref{Visiting}.
225@end table 232@end table
226 233
227@vindex split-height-threshold
228@vindex split-width-threshold
229 By default, these commands split the window vertically when there is
230only one. You can customize the variables @code{split-height-threshold}
231and @code{split-width-threshold} to split the window horizontally
232instead.
233
234
235@node Force Same Window
236@section Forcing Display in the Same Window
237
238 Certain Emacs commands switch to a specific buffer with special
239contents. For example, @kbd{M-x shell} switches to a buffer named
240@samp{*shell*}. By convention, all these commands are written to pop up
241the buffer in a separate window. But you can specify that certain of
242these buffers should appear in the selected window.
243
244@vindex same-window-buffer-names
245 If you add a buffer name to the list @code{same-window-buffer-names},
246the effect is that such commands display that particular buffer by
247switching to it in the selected window. For example, if you add the
248element @code{"*grep*"} to the list, the @code{grep} command will
249display its output buffer in the selected window.
250
251 The default value of @code{same-window-buffer-names} is not
252@code{nil}: it specifies buffer names @samp{*info*}, @samp{*mail*} and
253@samp{*shell*} (as well as others used by more obscure Emacs packages).
254This is why @kbd{M-x shell} normally switches to the @samp{*shell*}
255buffer in the selected window. If you delete this element from the
256value of @code{same-window-buffer-names}, the behavior of @kbd{M-x
257shell} will change---it will pop up the buffer in another window
258instead.
259
260@vindex same-window-regexps
261 You can specify these buffers more generally with the variable
262@code{same-window-regexps}. Set it to a list of regular expressions;
263then any buffer whose name matches one of those regular expressions is
264displayed by switching to it in the selected window. (Once again, this
265applies only to buffers that normally get displayed for you in a
266separate window.) The default value of this variable specifies Telnet
267and rlogin buffers.
268
269 An analogous feature lets you specify buffers which should be
270displayed in their own individual frames. @xref{Special Buffer Frames}.
271
272@node Change Window 234@node Change Window
273@section Deleting and Rearranging Windows 235@section Deleting and Rearranging Windows
274 236
@@ -356,6 +318,113 @@ heights of all the windows in the selected frame.
356 Mouse clicks on the mode line provide another way to change window 318 Mouse clicks on the mode line provide another way to change window
357heights and to delete windows. @xref{Mode Line Mouse}. 319heights and to delete windows. @xref{Mode Line Mouse}.
358 320
321@node Displaying Buffers
322@section Displaying a Buffer in a Window
323
324 It is a common Emacs operation to display or ``pop up'' some buffer
325in response to a user command. There are several different ways by
326which commands do this.
327
328 Many commands, like @kbd{C-x C-f} (@code{find-file}), display the
329buffer by ``taking over'' the selected window, expecting that the
330user's attention will be diverted to that buffer. These commands
331usually work by calling @code{switch-to-buffer} internally
332(@pxref{Select Buffer}).
333
334@findex display-buffer
335 Some commands try to display ``intelligently'', trying not to take
336over the selected window, e.g. by splitting the selected window and
337displaying the desired buffer in the child window. Such commands,
338which include the various help commands (@pxref{Help}), work by
339calling @code{display-buffer} internally. @xref{Window Choice}, for
340details.
341
342 Other commands do the same as @code{display-buffer}, and
343additionally select the displaying window so that you can begin
344editing its buffer. The command @kbd{C-x `} (@code{next-error}) is
345one example (@pxref{Compilation Mode}). Such commands work by calling
346@code{pop-to-buffer} internally. @xref{Displaying Buffers,,Displaying
347Buffers in Windows, elisp, The Emacs Lisp Reference Manual}.
348
349 Commands with names ending in @code{-other-window} behave like
350@code{display-buffer}, except that they never display in the selected
351window. Several of these commands are bound in the @kbd{C-x 4} prefix
352key (@pxref{Pop Up Window}).
353
354 Commands with names ending in @code{-other-frame} behave like
355@code{display-buffer}, except that they (i) never display in the
356selected window and (ii) prefer to create a new frame to display the
357desired buffer instead of splitting a window---as though the variable
358@code{pop-up-frames} is set to @code{t} (@pxref{Window Choice}).
359Several of these commands are bound in the @kbd{C-x 5} prefix key.
360
361@menu
362* Window Choice:: How @code{display-buffer} works.
363@end menu
364
365@node Window Choice
366@subsection How @code{display-buffer} works
367@findex display-buffer
368
369The @code{display-buffer} command (as well as commands that call it
370internally) chooses a window to display using the following steps:
371
372@itemize
373@vindex same-window-buffer-names
374@vindex same-window-regexps
375@item
376First, check if the buffer should be displayed in the selected window
377regardless of other considerations. You can tell Emacs to do this by
378adding the desired buffer's name to the list
379@code{same-window-buffer-names}, or adding a matching regular
380expression to the list @code{same-window-regexps}. By default, these
381variables are @code{nil}, so this step is skipped.
382
383@vindex display-buffer-reuse-frames
384@item
385Otherwise, if the buffer is already displayed in an existing window,
386``reuse'' that window. Normally, only windows on the selected frame
387are considered, but windows on other frames are also reusable if you
388change @code{display-buffer-reuse-frames} to @code{t}, or if you
389change @code{pop-up-frames} (see below) to @code{t}.
390
391@item
392Otherwise, if you specified that the buffer should be displayed in a
393special frame by customizing @code{special-display-buffer-names} or
394@code{special-display-regexps}, do so. @xref{Special Buffer Frames}.
395
396@vindex pop-up-frames
397@item
398Otherwise, optionally create a new frame and display the buffer there.
399By default, this step is skipped. To enable it, change the variable
400@code{pop-up-frames} to a non-@code{nil} value. The special value
401@code{graphic-only} means to do this only on graphical displays.
402
403@item
404Otherwise, try to create a new window by splitting the selected
405window, and display the buffer in that new window.
406
407@vindex split-height-threshold
408@vindex split-width-threshold
409The split can be either vertical or horizontal, depending on the
410variables @code{split-height-threshold} and
411@code{split-width-threshold}. These variables should have integer
412values. If @code{split-height-threshold} is smaller than the selected
413window's height, the split puts the new window below. Otherwise, if
414@code{split-width-threshold} is smaller than the window's width, the
415split puts the new window on the right. If neither condition holds,
416Emacs tries to split so that the new window is below---but only if the
417window was not split before (to avoid excessive splitting).
418
419@item
420Otherwise, display the buffer in an existing window on the selected
421frame.
422
423@item
424If all the above methods fail for whatever reason, create a new frame
425and display the buffer there.
426@end itemize
427
359@node Window Convenience 428@node Window Convenience
360@section Window Handling Convenience Features and Customization 429@section Window Handling Convenience Features and Customization
361 430
diff --git a/etc/NEWS b/etc/NEWS
index 71e5d9cd8be..75ff2081f00 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -386,6 +386,45 @@ by default.
386*** `menu-bar-select-buffer-function' lets you choose another operation 386*** `menu-bar-select-buffer-function' lets you choose another operation
387instead of `switch-to-buffer' when selecting an item in the Buffers menu. 387instead of `switch-to-buffer' when selecting an item in the Buffers menu.
388 388
389** Window changes
390
391+++
392*** Resizing an Emacs frame now preserves proportional window sizes,
393modulo restrictions like window minimum sizes and fixed-size windows.
394
395*** The behavior of `display-buffer' is now customizable in detail.
396
397**** New option `display-buffer-base-action' specifies a list of
398user-determined display "actions" (functions and optional arguments
399for choosing the displaying window).
400
401This takes precedence over the default display action, which is
402specified by `display-buffer-fallback-action'.
403
404**** New option `display-buffer-alist' maps buffer name regexps to
405display actions, taking precedence over `display-buffer-base-action'.
406
407+++
408*** New option `window-nest'.
409The new option `window-nest' allows to return the space obtained for
410resizing or creating a window more reliably to the window from which
411such space was obtained.
412
413+++
414*** New option `window-splits'.
415The new option `window-splits' allows to split a window that otherwise
416cannot be split because it's too small by stealing space from other
417windows in the same combination.
418
419+++
420*** New commands `maximize-window' and `minimize-window'.
421These maximize and minize the size of a window within its frame.
422
423+++
424*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
425These functions allow to navigate through the live buffers that have
426been shown in a specific window.
427
389** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'. 428** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
390This is handy for minibuffer-only frames, and is also used for the "mouse-1 429This is handy for minibuffer-only frames, and is also used for the "mouse-1
391pops up *Messages*" feature, which can now easily be changed. 430pops up *Messages*" feature, which can now easily be changed.
@@ -1003,18 +1042,6 @@ split. Any other value of SIDE will cause `split-window' to split the
1003window into two side-by-side windows as before. 1042window into two side-by-side windows as before.
1004 1043
1005+++ 1044+++
1006*** New option `window-nest'.
1007The new option `window-nest' allows to return the space obtained for
1008resizing or creating a window more reliably to the window from which
1009such space was obtained.
1010
1011+++
1012*** New option `window-splits'.
1013The new option `window-splits' allows to split a window that otherwise
1014cannot be split because it's too small by stealing space from other
1015windows in the same combination.
1016
1017+++
1018*** `split-window-above-each-other' and `split-window-side-by-side'. 1045*** `split-window-above-each-other' and `split-window-side-by-side'.
1019The commands `split-window-vertically' and `split-window-horizontally' 1046The commands `split-window-vertically' and `split-window-horizontally'
1020have been renamed to `split-window-above-each-other' and 1047have been renamed to `split-window-above-each-other' and
@@ -1028,12 +1055,6 @@ been introduced. This and all other functions for resizing windows no
1028longer delete any windows when they become too small. 1055longer delete any windows when they become too small.
1029 1056
1030+++ 1057+++
1031*** Frame/window resizing.
1032Resizing an Emacs frame now preserves the proportional sizes of
1033subwindows modulo restrictions imposed by window minimum sizes and
1034fixed-size windows.
1035
1036+++
1037*** `adjust-window-trailing-edge' adjustments. 1058*** `adjust-window-trailing-edge' adjustments.
1038`adjust-window-trailing-edge' can now deal with fixed-size windows and 1059`adjust-window-trailing-edge' can now deal with fixed-size windows and
1039is able to resize other windows if a window adjacent to the trailing 1060is able to resize other windows if a window adjacent to the trailing
@@ -1042,11 +1063,6 @@ that of Emacs 21 without compromising, however, its inability to delete
1042windows which was introduced in Emacs 22. 1063windows which was introduced in Emacs 22.
1043 1064
1044+++ 1065+++
1045*** Commands for maximizing and minimizing windows.
1046New functions to maximize and minimize a window within its frame are
1047provided, namely `maximize-window' and `minimize-window'.
1048
1049+++
1050*** Window-local buffer lists. 1066*** Window-local buffer lists.
1051Windows now have local buffer lists. This means that removing a buffer 1067Windows now have local buffer lists. This means that removing a buffer
1052from display in a window will preferably show the buffer previously 1068from display in a window will preferably show the buffer previously
@@ -1054,17 +1070,31 @@ shown in that window with its previous window-start and window-point
1054positions. This also means that the same buffer may be automatically 1070positions. This also means that the same buffer may be automatically
1055shown twice even if it already appears in another window. 1071shown twice even if it already appears in another window.
1056 1072
1057+++
1058*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
1059These functions allow to navigate through the live buffers that have
1060been shown in a specific window.
1061
1062*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW, 1073*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
1063which if non-nil requires the buffer to be displayed in the currently 1074which if non-nil requires the buffer to be displayed in the currently
1064selected window, signaling an error otherwise. If nil, another window 1075selected window, signaling an error otherwise. If nil, another window
1065can be used, e.g. if the selected one is strongly dedicated. 1076can be used, e.g. if the selected one is strongly dedicated.
1066 1077
1067*** FIXME: buffer-display-alist changes 1078*** `split-window-vertically' and `split-window-horizontally' renamed
1079to `split-window-above-each-other' and `split-window-side-by-side'
1080respectively. The old names are kept as aliases.
1081
1082*** Display actions
1083
1084**** The second arg to `display-buffer' and `pop-to-buffer' is now
1085named ACTION, and takes a display action of the same form as
1086`display-buffer-base-action' (see Changes, above). A non-nil,
1087non-list value is treated specially, as the old meaning.
1088
1089**** New variable `display-buffer-overriding-action'.
1090
1091**** The procedure of `display-buffer' etc. to choose a window is
1092determined by combining `display-buffer-overriding-action',
1093`display-buffer-alist', the ACTION arg, `display-buffer-base-action',
1094and `display-buffer-fallback-action'. The second and fourth of these
1095are user-customizable variables.
1096
1097See the docstring of `display-buffer' for details.
1068 1098
1069** Completion 1099** Completion
1070 1100