]> git.eshelyaron.com Git - emacs.git/commitdiff
(shrink-window-if-larger-than-buffer): If face
authorGerd Moellmann <gerd@gnu.org>
Wed, 20 Sep 2000 19:32:17 +0000 (19:32 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 20 Sep 2000 19:32:17 +0000 (19:32 +0000)
`mode-line' has a :box, and we're on a graphical frame, add 1
to the needed window height.

lisp/ChangeLog
lisp/window.el

index 8bcb27f6727756a97d6a8788145e9200a59914d3..8d4d67b14cf869ba7ac8001cdd1ad9fbc7f4edee 100644 (file)
@@ -1,5 +1,9 @@
 2000-09-20  Gerd Moellmann  <gerd@gnu.org>
 
+       * window.el (shrink-window-if-larger-than-buffer): If face
+       `mode-line' has a :box, and we're on a graphical frame, add 1
+       to the needed window height.
+
        * frame.el (frame-notice-user-settings): Add a last parameter nil
        to a call to `append', because the last list passed to `append' is
        not copied, and so subsequent calls to assq-delete-all will modify
index 81d35cef894feace72f1292de88eb0dd6d82b98a..31735c093f5d7782407cae920de509d448cb2140 100644 (file)
@@ -344,8 +344,7 @@ or if the window is the only window of its frame."
     (if window
        (select-window window)
       (setq window (selected-window)))
-    (let* ((params (frame-parameters))
-           (mini (cdr (assq 'minibuffer params)))
+    (let* ((mini (frame-parameter nil 'minibuffer))
            (edges (window-edges)))
       (if (and (< 1 (count-windows))
                (= (window-width) (frame-width))
@@ -353,12 +352,19 @@ or if the window is the only window of its frame."
                (not (eq mini 'only))
                (or (not mini)
                    (< (nth 3 edges) (nth 1 (window-edges mini)))
-                   (> (nth 1 edges) (cdr (assq 'menu-bar-lines params)))))
+                   (> (nth 1 edges) (frame-parameter nil 'menu-bar-lines))))
           ;; `count-screen-lines' always works on the current buffer, so
           ;; make sure it is the buffer displayed by WINDOW.
           (let ((text-height (with-current-buffer (window-buffer window)
                                (count-screen-lines)))
                 (window-height (window-height)))
+           ;; This is a workaround that adds 1 line to the window
+           ;; if windows have a 3D mode-line.  What's really needed
+           ;; is to get rid of the line-based computations.  We don't
+           ;; have the infrastructure for doing so, yet.
+           (when (and (display-graphic-p)
+                      (face-attribute 'mode-line :box))
+             (setq text-height (1+ text-height)))
            ;; Don't try to redisplay with the cursor at the end
            ;; on its own line--that would force a scroll and spoil things.
            (when (and (eobp) (bolp) (not (bobp)))