Mercurial > emacs
changeset 9007:2c55ff956862
(shrink-window-if-larger-than-buffer): Use WINDOW's frame
for all actions that operate on a frame. Set WINDOW to selected
window if it was nil.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 22 Sep 1994 20:00:48 +0000 |
parents | 186aff8c1f51 |
children | be396da9c611 |
files | lisp/window.el |
diffstat | 1 files changed, 23 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/window.el Thu Sep 22 19:20:52 1994 +0000 +++ b/lisp/window.el Thu Sep 22 20:00:48 1994 +0000 @@ -151,31 +151,37 @@ or if the window is not the full width of the frame, or if the window is the only window of its frame." (interactive) + (or window (setq window (selected-window))) (save-excursion (set-buffer (window-buffer window)) - (let ((w (selected-window)) ;save-window-excursion can't win - (buffer-file-name buffer-file-name) - (p (point)) - (n 0) - (ignore-final-newline - ;; If buffer ends with a newline, ignore it when counting height - ;; unless point is after it. - (and (not (eobp)) - (eq ?\n (char-after (1- (point-max)))))) - (buffer-read-only nil) - (modified (buffer-modified-p)) - (buffer (current-buffer)) - (mini (cdr (assq 'minibuffer (frame-parameters)))) - (edges (window-edges (selected-window)))) - (if (and (< 1 (count-windows)) - (= (window-width) (frame-width)) + (let* ((w (selected-window)) ;save-window-excursion can't win + (buffer-file-name buffer-file-name) + (p (point)) + (n 0) + (ignore-final-newline + ;; If buffer ends with a newline, ignore it when counting height + ;; unless point is after it. + (and (not (eobp)) + (eq ?\n (char-after (1- (point-max)))))) + (buffer-read-only nil) + (modified (buffer-modified-p)) + (buffer (current-buffer)) + (params (frame-parameters (window-frame window))) + (mini (cdr (assq 'minibuffer params))) + (edges (window-edges (selected-window)))) + (if (and (< 1 (let ((frame (selected-frame))) + (select-frame (window-frame window)) + (unwind-protect + (count-windows) + (select-frame frame)))) + (= (window-width window) (frame-width (window-frame window))) (pos-visible-in-window-p (point-min) window) (not (eq mini 'only)) (or (not mini) (< (nth 3 edges) (nth 1 (window-edges mini))) (> (nth 1 edges) - (cdr (assq 'menu-bar-lines (frame-parameters)))))) + (cdr (assq 'menu-bar-lines params))))) (unwind-protect (progn (select-window (or window w))