Function: scroll-bar-maybe-set-window-start
scroll-bar-maybe-set-window-start is an interactive and byte-compiled
function defined in scroll-bar.el.gz.
Signature
(scroll-bar-maybe-set-window-start EVENT)
Documentation
Set the window start according to where the scroll bar is dragged.
Only change window start if the new start is substantially different. EVENT should be a scroll bar click or drag event.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/scroll-bar.el.gz
(defun scroll-bar-maybe-set-window-start (event)
"Set the window start according to where the scroll bar is dragged.
Only change window start if the new start is substantially different.
EVENT should be a scroll bar click or drag event."
(interactive "e")
(let* ((end-position (event-end event))
(window (nth 0 end-position))
(portion-whole (nth 2 end-position))
(next-portion-whole (cons (1+ (car portion-whole))
(cdr portion-whole)))
portion-start
next-portion-start
(current-start (window-start window)))
(with-current-buffer (window-buffer window)
(setq portion-start (scroll-bar-drag-position portion-whole))
(setq next-portion-start (max
(scroll-bar-drag-position next-portion-whole)
(1+ portion-start)))
(if (or (>= current-start next-portion-start)
(< current-start portion-start))
(set-window-start window portion-start)
;; Always set window start, to ensure scroll bar position is updated.
(set-window-start window current-start)))))