aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMiles Bader2000-12-11 05:02:17 +0000
committerMiles Bader2000-12-11 05:02:17 +0000
commitdb7ebd73606a431ba968376a06cd6ebbfd39ccd0 (patch)
tree6098bae659b43598ea634471307d7416fd930e02 /lisp
parent802cf66c54be8f762c4b65a0a4d91010fdc7cd1e (diff)
downloademacs-db7ebd73606a431ba968376a06cd6ebbfd39ccd0.tar.gz
emacs-db7ebd73606a431ba968376a06cd6ebbfd39ccd0.zip
(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.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/gnus/ChangeLog7
-rw-r--r--lisp/gnus/gnus-sum.el20
2 files changed, 23 insertions, 4 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index a40458adc26..f7be69dd774 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,10 @@
12000-12-11 Miles Bader <miles@gnu.org>
2
3 * gnus-sum.el (gnus-summary-recenter): When trying to keep the
4 bottom line visible, check to see if it's partially obscured, and
5 if so, either scroll one more line to make it fully visible, or
6 revert to showing the second line from the top.
7
12000-12-07 Dave Love <fx@gnu.org> 82000-12-07 Dave Love <fx@gnu.org>
2 9
3 * mailcap.el (mailcap-download-directory) 10 * mailcap.el (mailcap-download-directory)
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index cb58e81224c..33023546ccd 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -5273,10 +5273,22 @@ displayed, no centering will be performed."
5273 ;; Set the window start to either `bottom', which is the biggest 5273 ;; Set the window start to either `bottom', which is the biggest
5274 ;; possible valid number, or the second line from the top, 5274 ;; possible valid number, or the second line from the top,
5275 ;; whichever is the least. 5275 ;; whichever is the least.
5276 (set-window-start 5276 (let ((top-pos (save-excursion (forward-line (- top)) (point))))
5277 window (min bottom (save-excursion 5277 (if (> bottom top-pos)
5278 (forward-line (- top)) (point))) 5278 ;; Keep the second line from the top visible
5279 t)) 5279 (set-window-start window top-pos t)
5280 ;; Try to keep the bottom line visible; if it's partially
5281 ;; obscured, either scroll one more line to make it fully
5282 ;; visible, or revert to using TOP-POS.
5283 (save-excursion
5284 (goto-char (point-max))
5285 (forward-line -1)
5286 (let ((last-line-start (point)))
5287 (goto-char bottom)
5288 (set-window-start window (point) t)
5289 (when (not (pos-visible-in-window-p last-line-start window))
5290 (forward-line 1)
5291 (set-window-start window (min (point) top-pos) t)))))))
5280 ;; Do horizontal recentering while we're at it. 5292 ;; Do horizontal recentering while we're at it.
5281 (when (and (get-buffer-window (current-buffer) t) 5293 (when (and (get-buffer-window (current-buffer) t)
5282 (not (eq gnus-auto-center-summary 'vertical))) 5294 (not (eq gnus-auto-center-summary 'vertical)))