]> git.eshelyaron.com Git - emacs.git/commitdiff
(gnus-summary-recenter): When trying to keep the bottom line visible,
authorMiles Bader <miles@gnu.org>
Mon, 11 Dec 2000 05:02:17 +0000 (05:02 +0000)
committerMiles Bader <miles@gnu.org>
Mon, 11 Dec 2000 05:02:17 +0000 (05:02 +0000)
check to see if it's partially obscured, and if so, either scroll one
more line to make it fully visible, or revert to showing the second line
from the top.

lisp/gnus/ChangeLog
lisp/gnus/gnus-sum.el

index a40458adc263dcfd68a2b827fb09b1f353768a65..f7be69dd7745699241b2e07aabb108a305c78e49 100644 (file)
@@ -1,3 +1,10 @@
+2000-12-11  Miles Bader  <miles@gnu.org>
+
+       * gnus-sum.el (gnus-summary-recenter): When trying to keep the
+       bottom line visible, check to see if it's partially obscured, and
+       if so, either scroll one more line to make it fully visible, or
+       revert to showing the second line from the top.
+
 2000-12-07  Dave Love  <fx@gnu.org>
 
        * mailcap.el (mailcap-download-directory)
index cb58e81224c736586b3ae674a073cbf4702715ea..33023546ccdde1ab1803eba0fc3bf823ed1cb523 100644 (file)
@@ -5273,10 +5273,22 @@ displayed, no centering will be performed."
        ;; Set the window start to either `bottom', which is the biggest
        ;; possible valid number, or the second line from the top,
        ;; whichever is the least.
-       (set-window-start
-        window (min bottom (save-excursion
-                             (forward-line (- top)) (point)))
-        t))
+       (let ((top-pos (save-excursion (forward-line (- top)) (point))))
+         (if (> bottom top-pos)
+             ;; Keep the second line from the top visible
+             (set-window-start window top-pos t)
+           ;; Try to keep the bottom line visible; if it's partially
+           ;; obscured, either scroll one more line to make it fully
+           ;; visible, or revert to using TOP-POS.
+           (save-excursion
+             (goto-char (point-max))
+             (forward-line -1)
+             (let ((last-line-start (point)))
+               (goto-char bottom)
+               (set-window-start window (point) t)
+               (when (not (pos-visible-in-window-p last-line-start window))
+                 (forward-line 1)
+                 (set-window-start window (min (point) top-pos) t)))))))
       ;; Do horizontal recentering while we're at it.
       (when (and (get-buffer-window (current-buffer) t)
                 (not (eq gnus-auto-center-summary 'vertical)))