Commit 46f2aa14 authored by Chong Yidong's avatar Chong Yidong
Browse files

(recenter-top-bottom): Determine top and bottom positions using

scroll-margin instead of scroll-conservatively.
parent 0444738f
......@@ -1436,26 +1436,25 @@ top, middle, or bottom on successive calls.
The cycling order is: middle -> top -> bottom.
Top and bottom destinations are actually `scroll-conservatively' lines
from true window top and bottom."
Top and bottom destinations are actually `scroll-margin' lines
the from true window top and bottom."
(interactive "P")
(cond
(arg (recenter arg)) ; Always respect ARG.
((not (eq this-command last-command))
;; First time - save mode and recenter.
((or (not (eq this-command last-command))
(eq recenter-last-op 'bottom))
(setq recenter-last-op 'middle)
(recenter))
(t ;; repeat: loop through various options.
(setq recenter-last-op
(t
(let ((this-scroll-margin
(min (max 0 scroll-margin)
(truncate (/ (window-body-height) 4.0)))))
(cond ((eq recenter-last-op 'middle)
(recenter scroll-conservatively)
'top)
(setq recenter-last-op 'top)
(recenter this-scroll-margin))
((eq recenter-last-op 'top)
(recenter (1- (- scroll-conservatively)))
'bottom)
((eq recenter-last-op 'bottom)
(recenter)
'middle))))))
(setq recenter-last-op 'bottom)
(recenter (- -1 this-scroll-margin))))))))
(define-key global-map [?\C-l] 'recenter-top-bottom)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment