Mercurial > emacs
changeset 3642:e14773d3f849
* simple.el (hscroll-point-visible): Work as documented in the
docstring for hscroll-step.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Fri, 11 Jun 1993 09:45:20 +0000 |
parents | a846352be1a0 |
children | f336e1e9a664 |
files | lisp/simple.el |
diffstat | 1 files changed, 22 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Fri Jun 11 07:29:55 1993 +0000 +++ b/lisp/simple.el Fri Jun 11 09:45:20 1993 +0000 @@ -1477,16 +1477,28 @@ (defun hscroll-point-visible () "Scrolls the window horizontally to make point visible." - (let* ((min (window-hscroll)) - (max (- (+ min (window-width)) 2)) - (here (current-column)) - (delta (if (zerop hscroll-step) (/ (window-width) 2) hscroll-step)) - ) - (if (< here min) - (scroll-right (max 0 (+ (- min here) delta))) - (if (>= here max) - (scroll-left (- (- here min) delta)) - )))) + (let* ((here (current-column)) + (left (window-hscroll)) + (right (- (+ left (window-width)) 3))) + (cond + ;; Should we recenter? + ((or (< here (- left hscroll-step)) + (> here (+ right hscroll-step))) + (set-window-hscroll + (selected-window) + ;; Recenter, but don't show too much white space off the end of + ;; the line. + (max 0 + (min (- (save-excursion (end-of-line) (current-column)) + (window-width) + -5) + (- here (/ (window-width) 2)))))) + ;; Should we scroll left? + ((> here right) + (scroll-left hscroll-step)) + ;; Or right? + ((< here left) + (scroll-right hscroll-step))))) ;; rms: (1) The definitions of arrow keys should not simply restate ;; what keys they are. The arrow keys should run the ordinary commands.