1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
Commit graph

432 commits

Author SHA1 Message Date
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Martin Rudalics
27fcfe3101 Once more fix resizing of rmail summary window.
* window.el (window-resizable--p): Rename to window-resizable-p.
(window-resize-no-error): New function.

* mail/rmail.el (rmail-maybe-display-summary): Restore behavior
broken in fix from 2012-12-28.
2012-12-31 12:35:13 +01:00
Stefan Monnier
d1c0cddf73 * lisp/window.el (switch-to-buffer): Re-add the warning that was lost in the
code rewrite.
2012-11-18 22:16:03 -05:00
Glenn Morris
95f0501e74 Reword previous with-temp-buffer-window doc fixes
* lisp/window.el (with-temp-buffer-window):
Reword the doc to be more similar to with-output-to-temp-buffer.

* lisp/subr.el (with-output-to-temp-buffer):
Add doc xref to with-temp-buffer-window.
2012-11-16 21:03:58 -05:00
Glenn Morris
65463c4091 * lisp/window.el (with-temp-buffer-window): Doc fix. 2012-11-16 20:26:24 -05:00
Martin Rudalics
0ff7851c6b Fix some display-buffer related issues.
* window.el (enlarge-window, shrink-window): Don't mention return
value in doc-string (Bug#12896).
(window--display-buffer): Don't resize frames - it won't work
with all window managers and defeat pop-up-frame-alist.
(display-buffer-alist): In doc-string explain that CONDITION can
be a function and which arguments are passed to it (Bug#12854).
(display-buffer-assq-regexp): New argument ACTION.  Handle lambda
expressions (Bug#12854).
(display-buffer): Pass ACTION argument to
display-buffer-assq-regexp.

* windows.texi (Choosing Window): Rewrite description of
display-buffer-alist (Bug#12167).
(Display Action Functions): Mention inhibit-switch-frame.  Fix
description of display-buffer-below-selected.  Reorder actions.
Add example (Bug#12848).
2012-11-16 11:29:48 +01:00
Glenn Morris
7c82753d4c Doc fixes related to fit-frame-to-buffer
* lisp/window.el (fit-frame-to-buffer-bottom-margin)
(fit-frame-to-buffer, fit-window-to-buffer): Doc fixes.

* etc/NEWS: Related edit.
2012-11-16 00:31:20 -08:00
Martin Rudalics
9234627530 Preserve window-point-insertion-type when copying window-point markers. (Bug#12588)
* window.el (record-window-buffer)
(display-buffer-record-window): When copying the markers to
window-point preserve window-point-insertion-type. (Bug#12588)
2012-11-13 08:40:07 +01:00
Glenn Morris
38785e75a2 * lisp/window.el (with-temp-buffer-window): Doc tweak. 2012-11-10 17:47:56 -08:00
Glenn Morris
6ba6a3e51f Fix more custom :versions
* lisp/help.el (temp-buffer-max-height):
* lisp/window.el (fit-frame-to-buffer, fit-frame-to-buffer-bottom-margin):
Fix :version.
2012-11-10 16:43:54 -08:00
Martin Rudalics
43bcfda6d8 Doc changes related to displaying buffers and quitting windows.
* window.el (switch-to-visible-buffer)
(switch-to-buffer-preserve-window-point): Fix doc-strings.

* windows.texi (Switching Buffers): Document option
switch-to-buffer-preserve-window-point.
(Display Action Functions): Document window-height and
window-width alist entries.
(Display Action Functions): Document
display-buffer-below-selected and
display-buffer-in-previous-window.
(Quitting Windows): Document quit-restore-window.  Rewrite
section.
(Window Configurations): In window-state-get mention that
argument window must be valid.
(Window Parameters): Document quit-restore window parameter
(Bug#12158).
2012-11-03 11:47:03 +01:00
Martin Rudalics
218e997a10 Install fixes for Bug#12764 and Bug#12766.
* window.el (quit-restore-window): If the window has been
created on an existing frame and ended up as the sole window on
that frame, do not delete it (Bug#12764).

* minibuf.c (read_minibuf): Restore current buffer since
choose_minibuf_frame calling Fset_frame_selected_window may
change it (Bug#12766).
2012-10-31 11:02:51 +01:00
Martin Rudalics
df171c230c In display-time-world restore fit-window-to-buffer behavior.
* window.el (display-buffer): In doc-string describe
window-height and window-width alist entries.

* time.el (display-time-world): Restore fit-window-to-buffer
behavior.
2012-10-27 10:58:30 +02:00
Paul Eggert
791ef5f8ea Spelling fixes. 2012-10-21 00:23:34 -07:00
Eli Zaretskii
7b9abf24ee lisp/window.el (display-buffer): Doc fix. 2012-10-14 19:07:00 +02:00
Martin Rudalics
9d7f027b56 In switch-to-buffer optionally restore window point (Bug#4041).
* window.el (switch-to-buffer-preserve-window-point): New option.
(switch-to-buffer): Obey
`switch-to-buffer-preserve-window-point' (Bug#4041).
2012-10-10 11:36:45 +02:00
Stefan Monnier
662a9d0e1c * lisp/window.el (internal--before-save-selected-window)
(internal--after-save-selected-window): New functions extracted from
save-selected-window.  Make sure we return the `alist' we construct.
(save-selected-window): Use them.
* lisp/textmodes/tex-mode.el (tex-recenter-output-buffer):
Use with-selected-window.
2012-10-07 11:54:30 -04:00
Paul Eggert
735135f9bc Spelling fixes. 2012-10-04 22:57:24 -07:00
Martin Rudalics
1bc834133d Fix last fix of window--display-buffer. 2012-09-30 12:44:43 +02:00
Martin Rudalics
5938d5196d Handle window-height and window-width alist entries in `display-buffer'.
In buffer display functions handle window-height/window-width
alist entries.  Suggested by Juri Linkov as fix for Bug#1806.
* window.el (window--display-buffer): New argument ALIST.  Obey
window-height and window-width alist entries.
(window--try-to-split-window): New argument ALIST.  Bind
window-combination-limit to t when the window's size shall be
changed and window-combination-limit equals `window-size'.
(display-buffer-in-atom-window)
(display-buffer-in-major-side-window)
(display-buffer-in-side-window, display-buffer-same-window)
(display-buffer-reuse-window, display-buffer-pop-up-frame)
(display-buffer-pop-up-window, display-buffer-below-selected)
(display-buffer-at-bottom, display-buffer-in-previous-window)
(display-buffer-use-some-window): Adjust all callers of
window--display-buffer and window--try-to-split-window.
(fit-frame-to-buffer): New option.
(fit-window-to-buffer): Can resize frames if fit-frame-to-buffer
is non-nil.
(display-buffer-in-major-side-window): Evaluate window-height /
window-width alist entries.

* help.el (temp-buffer-resize-frames)
(temp-buffer-resize-regexps): Remove options.
(temp-buffer-resize-mode): Adjust doc-string.
(resize-temp-buffer-window): Don't consult
temp-buffer-resize-regexps.  Use fit-frame-to-buffer instead of
temp-buffer-resize-frames.

* dired.el (dired-mark-pop-up): Call
display-buffer-below-selected with a fit-window-to-buffer alist
entry.

* window.c (Vwindow_combination_limit): New default value.
(Qwindow_size): New symbol replacing Qtemp_buffer_resize.
2012-09-30 11:10:59 +02:00
Juanma Barranquero
42019c2e0c lisp/window.el (temp-buffer-window-setup): Fix typo in docstring. 2012-09-26 16:11:18 +02:00
Martin Rudalics
9c52dd5a2e Improve resizing of minibuffer windows (Bug#12419).
* window.el (window--resize-child-windows): When resizing child
windows proportionally, process them in reverse order to
preserve the "when splitting a window the new one gets the odd
line" behavior.
(window--resize-root-window-vertically): When resizing the
minibuffer window try to affect only windows at the bottom of the
frame.  (Bug#12419)
2012-09-25 10:20:05 +02:00
Martin Rudalics
8e17c9ba14 Make Temp Buffer Resize Mode less intrusive (Bug#1806).
* window.c (Fsplit_window_internal): Handle only Qt value of
Vwindow_combination_limit separately.
(Qtemp_buffer_resize): New symbol.
(Vwindow_combination_limit): New default value.  Rewrite
doc-string.
* cus-start.el (window-combination-limit): Add new optional
values.
* window.el (temp-buffer-window-show)
(window--try-to-split-window): Obey new values of
window-combination-limit.
(split-window): Test window-combination-limit for t instead of
non-nil.
(display-buffer-at-bottom): New buffer display action function.
* help.el (temp-buffer-resize-regexps): New option.
(temp-buffer-resize-mode): Rewrite doc-string.
(resize-temp-buffer-window): Obey temp-buffer-resize-regexps.
Don't resize reused window.  Suggested by Glen Morris.
2012-09-22 14:56:08 +02:00
Chong Yidong
71ce58e752 Mark display-buffer-function as obsolete.
* lisp/window.el (display-buffer-function): Mark as obsolete.

Fixes: debbugs:12166
2012-09-16 12:52:38 +08:00
Chong Yidong
fdc2806d0b * window.el (special-display-popup-frame): Doc fix.
Fixes: debbugs:8853
2012-09-16 12:43:46 +08:00
Chong Yidong
011474aa5a Allow scrolling in y-or-n-p.
* lisp/replace.el (query-replace-map): Bind four new symbols for
requesting window scrolling.

* lisp/subr.el (y-or-n-p): Handle the window-scrolling bindings in
query-replace-map.

* lisp/custom.el (custom-theme-load-confirm): Use y-or-n-p.

* lisp/window.el (scroll-other-window-down): Make the arg optional.

* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Don't bind scrolling keys
since they are now in query-replace-map.

* doc/lispref/minibuf.texi (Yes-or-No Queries): Document recentering and
scrolling in y-or-n-p.  Remove gratuitous example.

* doc/lispref/searching.texi (Search and Replace): Document window scrolling
entries in query-replace-map.

Fixes: debbugs:8948
2012-09-09 14:43:47 +08:00
Martin Rudalics
fa2bcf435d Fix handling of debugger window. (Bug#8789)
* window.el (display-buffer-in-previous-window): New buffer
display action function.

* emacs-lisp/debug.el (debugger-bury-or-kill): New option.
(debugger-previous-window): New variable.
(debug): Rewrite using display-buffer-in-previous-window,
quit-restore-window and debugger-bury-or-kill.  (Bug#8789)
2012-09-08 15:28:11 +02:00
Chong Yidong
cee2e90d47 Minor doc fix for switch-to-buffer.
* doc/lispref/windows.texi (Display Action Functions)
(Choosing Window Options): Remove obsolete variable
display-buffer-reuse-frames.
(Switching Buffers): Minor doc tweak for switch-to-buffer.

* lisp/window.el (switch-to-buffer): Doc fix.

Fixes: debbugs:12181
2012-09-07 21:53:21 +08:00
Martin Rudalics
ef6544601a Provide support for fitting frames to buffers.
* help.el (temp-buffer-max-height): New default value.
(temp-buffer-resize-frames): New option.
(resize-temp-buffer-window): Optionally resize frame.

* window.el (fit-frame-to-buffer-bottom-margin): New option.
(fit-frame-to-buffer): New function.
2012-09-05 11:22:20 +02:00
Martin Rudalics
c5e28e3927 New macro with-temp-buffer-window and related fixes.
* buffer.c (Fdelete_all_overlays): New function.

* window.el (temp-buffer-window-setup-hook)
(temp-buffer-window-show-hook): New hooks.
(temp-buffer-window-setup, temp-buffer-window-show)
(with-temp-buffer-window): New functions.
(fit-window-to-buffer): Remove unused optional argument
OVERRIDE.
(special-display-popup-frame): Make sure the window used shows
BUFFER.

* help.el (temp-buffer-resize-mode): Fix doc-string.
(resize-temp-buffer-window): New optional argument WINDOW.

* files.el (recover-file, save-buffers-kill-emacs):
* dired.el (dired-mark-pop-up): Use with-temp-buffer-window.
2012-09-03 10:54:25 +02:00
Martin Rudalics
78dd6ab198 Rewrite switch-to-prev-/next-buffer and quit-window; add display-buffer-below-selected.
* window.el (switch-to-prev-buffer): Handle additional values of
BURY-OR-KILL argument.  Don't switch in minibuffer window.
(switch-to-next-buffer): Don't switch in minibuffer window.
(quit-restore-window): New function based on quit-window.
Handle additional values of former KILL argument.
(quit-window): Call quit-restore-window with appropriate
interpretation of KILL argument.
(display-buffer-below-selected): New buffer display action
function.
2012-09-01 18:47:09 +02:00
Martin Rudalics
862382df3d Consider frame's buffer predicate in switch-to-prev-/next-buffer.
* window.el (switch-to-prev-buffer, switch-to-next-buffer):
Consider frame's buffer predicate when choosing the buffer.
(Bug#12081)
2012-08-31 18:51:49 +02:00
Chong Yidong
247778328b Improve obsolescence message of display-buffer-reuse-frames.
* lisp/window.el (display-buffer-reuse-frames): Make the obsolescence
message more informative.
2012-08-30 11:45:51 +08:00
Chong Yidong
77f1f99cb0 Make special-display-* and display-buffer-reuse-frames obsolete.
* lisp/window.el (special-display-regexps, special-display-frame-alist)
(special-display-buffer-names, special-display-function)
(display-buffer-reuse-frames): Mark as obsolete.

* lisp/progmodes/compile.el: Don't use display-buffer-reuse-frames.

* help.el (help-print-return-message): Don't treat
display-buffer-reuse-frames specially.
2012-08-26 21:42:18 +08:00
Chong Yidong
d97af5a07f Clean up gdb-mi's usage of display-buffer.
* progmodes/gdb-mi.el (gdb-display-buffer-other-frame-action): New
variable, replacing gdb-frame-parameters.
(gdb-frame-io-buffer, gdb-frame-breakpoints-buffer)
(gdb-frame-threads-buffer, gdb-frame-memory-buffer)
(gdb-frame-disassembly-buffer, gdb-frame-stack-buffer)
(gdb-frame-locals-buffer, gdb-frame-registers-buffer): Use it.
(def-gdb-frame-for-buffer): Macro deleted.  It is easier to define
the functions directly with gdb-display-buffer-other-frame-action.
(gdb-display-breakpoints-buffer, gdb-display-threads-buffer)
(gdb-display-memory-buffer, gdb-display-disassembly-buffer)
(gdb-display-stack-buffer, gdb-display-locals-buffer)
(gdb-display-registers-buffer): Define directly.
(def-gdb-display-buffer): Macro deleted.
(gdb-display-buffer): Remove second and third args, callers don't
use them.  Defer to the default display-buffer behavior, apart
from making windows dedicated.
(gdb-setup-windows): Don't call display-buffer unnecessarily.

* window.el (display-buffer-pop-up-frame): Handle a
pop-up-frame-parameters alist entry.
(display-buffer): Document it.

* progmodes/gud.el (gud-display-line): Just use display-buffer.
2012-08-26 17:16:48 +08:00
Martin Rudalics
9aba119d72 Handle evening window heights more correctly (Bug#11880) and (Bug#12091).
* window.el (window--even-window-heights): Even heights when
WINDOW and the selected window form a vertical combination.
(display-buffer-use-some-window): Provide that window used gets
sized back by quit-window.  (Bug#11880) and (Bug#12091)
2012-08-25 16:52:02 +02:00
Martin Rudalics
caceae2529 Rewrite handling of side and atomic windows.
* window.el (display-buffer-in-atom-window, window--major-non-side-window)
(window--major-side-window, display-buffer-in-major-side-window)
(delete-side-window, display-buffer-in-side-window): New
functions.
(window--side-check, window-deletable-p, delete-window)
(delete-other-windows, split-window): Handle side windows and
atomic windows appropriately.
(window--display-buffer): Call display-buffer-record-window also
when the window buffer did not change.
2012-08-22 11:22:08 +02:00
Martin Rudalics
842e3a93aa Rename window--size-ignore to window--size-ignore-p.
* window.el (window--size-ignore): Rename to window--size-ignore-p.
Update callers.
2012-08-22 10:42:34 +02:00
Martin Rudalics
ea95074ef6 Let walk-window-tree and window-with-parameter operate on minibuffer windows too.
* window.el (walk-window-tree, window-with-parameter): New
optional argument MINIBUF to control whether these functions
should run on the minibuffer window.
(window-at-side-list): Don't operate on minibuffer window.
(window-in-direction): Simplify and rewrite doc-string.
2012-08-22 10:30:54 +02:00
Martin Rudalics
5481664ac4 For selected window have (set-)window-point always operate on buffer's point.
* window.c (Fwindow_point): For the selected window always return
the position of its buffer's point.
(Fset_window_point): For the selected window always go in its
buffer to the specified position.
* window.el (window-point-1, set-window-point-1): Remove.
(window-in-direction, record-window-buffer)
(set-window-buffer-start-and-point, split-window-below)
(window--state-get-1, display-buffer-record-window): Replace
calls to window-point-1 and set-window-point-1 by calls to
window-point and set-window-point respectively.
2012-08-21 11:27:07 +02:00
Martin Rudalics
998c4a6a18 Fix latest fix of delete-window.
* window.el (delete-window): Fix last fix.
2012-08-17 08:01:17 +02:00
Martin Rudalics
85c2386bbe In window.el tell whether functions operate on valid, live or any windows.
* window.el (window-child, window-child-count, window-last-child)
(window-normalize-window, window-combined-p)
(window-combinations, window-atom-root, window-min-size)
(window-sizable, window-sizable-p, window-size-fixed-p)
(window-min-delta, window-max-delta, window--resizable)
(window--resizable-p, window-resizable, window-total-size)
(window-full-height-p, window-full-width-p, window-body-size)
(window-at-side-p, adjust-window-trailing-edge, maximize-window)
(minimize-window, window-deletable-p, delete-window)
(delete-other-windows, set-window-buffer-start-and-point)
(next-buffer, previous-buffer, split-window, balance-windows-2)
(set-window-text-height, window-buffer-height)
(fit-window-to-buffer, shrink-window-if-larger-than-buffer)
(truncated-partial-width-window-p): Minor code adjustments.  In
doc-strings state whether the argument window has to denote a
live, valid or any window.
2012-08-16 19:22:36 +02:00
Martin Rudalics
52162052fd Consistently check windows for validity/liveness (Bug#11984, Bug#12025, Bug#12026).
* lisp.h (CHECK_VALID_WINDOW): New macro.
* window.c (decode_window): Rename to decode_live_window.
(decode_valid_window, Fwindow_valid_p): New functions.
(Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
(Fframe_first_window, Fframe_selected_window, Fwindow_parent)
(Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
(Fwindow_prev_sibling, Fwindow_combination_limit)
(Fset_window_combination_limit, Fwindow_use_time)
(Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
(Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
(Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
(Fwindow_hscroll, Fset_window_hscroll)
(Fwindow_redisplay_end_trigger)
(Fset_window_redisplay_end_trigger, Fwindow_edges)
(Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
(Fwindow_inside_edges, Fwindow_inside_pixel_edges)
(Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
(Fwindow_end, Fset_window_point, Fset_window_start)
(Fpos_visible_in_window_p, Fwindow_line_height)
(Fwindow_dedicated_p, Fset_window_dedicated_p)
(Fwindow_prev_buffers, Fset_window_prev_buffers)
(Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
(Fset_window_parameter, Fwindow_display_table)
(Fset_window_display_table, Fdelete_other_windows_internal)
(Fset_window_buffer, Fset_window_new_total)
(Fset_window_new_normal, Fdelete_window_internal)
(Fwindow_text_height, Fset_window_margins, Fwindow_margins)
(Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
(Fwindow_scroll_bars): Check whether argument window is a valid or
live window.  Update doc-strings.
(syms_of_window): New symbol Qwindow_valid_p.
* keyboard.c (Fposn_at_x_y): Check whether argument
frame_or_window denotes a valid window.
* window.el (window-valid-p): Move to window.c.
2012-08-16 09:58:24 +02:00
Bastien Guerry
31cd32c905 window.el: Minor dosctring enhancement (Bug#12172).
* window.el (special-display-popup-frame): Minor docstring
enhancement.  (Bug#12172)
2012-08-13 16:05:24 +02:00
Chong Yidong
90749b537a Add inhibit-switch-frame parameter for display-buffer, and use it in occur-edit.
* replace.el (occur-after-change-function): Avoid losing focus by
using the inhibit-switch-frame display action option.

* window.el (window--maybe-raise-frame): New function.
(window--display-buffer): Split off from here.
(display-buffer-reuse-window, display-buffer-pop-up-frame)
(display-buffer-pop-up-window, display-buffer-use-some-window):
Obey an inhibit-switch-frame action alist entry.
(display-buffer): Update doc.

Fixes: debbugs:12139
2012-08-06 13:33:39 +08:00
Martin Rudalics
502e3f8935 Fix return values of switch-to-prev/next-buffer.
* window.el (switch-to-prev-buffer, switch-to-next-buffer):
Don't return a non-nil value when no suitable buffer was found.
2012-07-31 10:36:32 +02:00
Tassilo Horn
2dc2a609c5 * window.el (split-window-sensibly): Make WINDOW argument
optional.
2012-07-18 12:02:54 +02:00
Dmitry Gutov
4737eec9d7 In quit-window always restore window height when it's saved in
quit-restore parameter.

* window.el (quit-window): Always restore window height when
it's saved in quit-restore parameter.
2012-07-06 08:22:56 +02:00
Stefan Monnier
36cec983d4 Further GV/CL cleanups.
* lisp/emacs-lisp/gv.el (gv-get): Autoload functions to find their
gv-expander.
(gv--defun-declaration): New function.
(defun-declarations-alist): Use it.
(gv-define-modify-macro, gv-pushnew!, gv-inc!, gv-dec!): Remove.
(gv-place): Autoload.
* lisp/emacs-lisp/cl.el (cl--dotimes, cl--dolist): Remember subr.el's
original definition of dotimes and dolist.
* lisp/emacs-lisp/cl-macs.el (cl-expr-access-order): Remove unused.
(cl-dolist, cl-dotimes): Use `dolist' and `dotimes'.
* lisp/emacs-lisp/cl-lib.el: Move gv handlers from cl-macs to here.
(cl-fifth, cl-sixth, cl-seventh, cl-eighth)
(cl-ninth, cl-tenth): Move gv handler to the function's definition.
* lisp/emacs-lisp/cl-extra.el (cl-subseq, cl-get, cl-getf): Move gv handler
to the function's definition.
* lisp/Makefile.in (COMPILE_FIRST): Re-order to speed it up by about 50%.
* lisp/window.el:
* lisp/files.el:
* lisp/faces.el:
* lisp/env.el: Don't use CL.
2012-06-22 17:24:54 -04:00