changeset 75762:a57328de9ea2

(calculator): Adjust previous adjustment.
author Jay Belanger <jay.p.belanger@gmail.com>
date Sat, 10 Feb 2007 22:25:51 +0000
parents 7eb1181ffb91
children a188fe783bbe
files lisp/calculator.el
diffstat 1 files changed, 33 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/calculator.el	Sat Feb 10 22:25:03 2007 +0000
+++ b/lisp/calculator.el	Sat Feb 10 22:25:51 2007 +0000
@@ -738,29 +738,39 @@
              ;; If the modeline might interfere with the calculator buffer,
              ;; use 3 lines instead. 
              (if (and (fboundp 'face-attr-construct)
-                      ;; If the modeline is shorter than the default, 
-                      ;; stick with 2 lines.  (It may be necessary to 
-                      ;; check how much shorter.)
-                      (let ((dh (plist-get (face-attr-construct 'default) :height))
-                            (mh (plist-get (face-attr-construct 'modeline) :height)))
-                        (not
-                         (or (and (integerp dh)
-                                  (integerp mh)
-                                  (< mh dh))
-                             (and (numberp mh)
-                                  (not (integerp mh))
-                                  (< mh 1)))))
-                      (or
-                       ;; If the modeline has a box with non-negative line-width,
-                       ;; use 3 lines.
-                       (let* ((bx (plist-get (face-attr-construct 'modeline) :box))
-                              (lh (plist-get bx :line-width)))
-                         (and bx
-                              (or 
-                               (not lh)
-                               (> lh 0))))
-                       ;; If the modeline has an overline, use 3 lines.
-                       (plist-get (face-attr-construct 'modeline) :overline)))
+                      (let* ((dh (plist-get (face-attr-construct 'default) :height))
+                             (mf (face-attr-construct 'modeline))
+                             (mh (plist-get mf :height)))
+                        ;; If the modeline is shorter than the default, 
+                        ;; stick with 2 lines.  (It may be necessary to 
+                        ;; check how much shorter.)
+                        (and
+                         (not
+                          (or (and (integerp dh)
+                                   (integerp mh)
+                                   (< mh dh))
+                              (and (numberp mh)
+                                   (not (integerp mh))
+                                   (< mh 1))))
+                         (or
+                          ;; If the modeline is taller than the default,
+                          ;; use 3 lines.
+                          (and (integerp dh)
+                               (integerp mh)
+                               (> mh dh))
+                          (and (numberp mh)
+                               (not (integerp mh))
+                               (> mh 1))
+                          ;; If the modeline has a box with non-negative line-width,
+                          ;; use 3 lines.
+                          (let* ((bx (plist-get mf :box))
+                                 (lh (plist-get bx :line-width)))
+                            (and bx
+                                 (or 
+                                  (not lh)
+                                  (> lh 0))))
+                          ;; If the modeline has an overline, use 3 lines.
+                          (plist-get (face-attr-construct 'modeline) :overline)))))
                -3 -2)))
            (switch-to-buffer calculator-buffer)))
         ((not (eq (current-buffer) calculator-buffer))