Commit c0809ff2 authored by Martin Rudalics's avatar Martin Rudalics

Fix problem with 'scroll-bar-adjust-thumb-portion' nil (Bug#32002)

* lisp/scroll-bar.el (scroll-bar-drag-1): Do not scroll window
when its buffer is fully visible and
'scroll-bar-adjust-thumb-portion' is nil (Bug#32002).
parent 506ed5fd
......@@ -254,14 +254,22 @@ EVENT should be a scroll bar click or drag event."
(let* ((start-position (event-start event))
(window (nth 0 start-position))
(portion-whole (nth 2 start-position)))
(save-excursion
(with-current-buffer (window-buffer window)
;; Calculate position relative to the accessible part of the buffer.
(goto-char (+ (point-min)
(scroll-bar-scale portion-whole
(- (point-max) (point-min)))))
(vertical-motion 0 window)
(set-window-start window (point))))))
;; With 'scroll-bar-adjust-thumb-portion' nil and 'portion-whole'
;; indicating that the buffer is fully visible, do not scroll the
;; window since that might make it impossible to scroll it back
;; with GTK's thumb (Bug#32002).
(when (or scroll-bar-adjust-thumb-portion
(not (numberp (car portion-whole)))
(not (numberp (cdr portion-whole)))
(/= (car portion-whole) (cdr portion-whole)))
(save-excursion
(with-current-buffer (window-buffer window)
;; Calculate position relative to the accessible part of the buffer.
(goto-char (+ (point-min)
(scroll-bar-scale portion-whole
(- (point-max) (point-min)))))
(vertical-motion 0 window)
(set-window-start window (point)))))))
(defun scroll-bar-drag (event)
"Scroll the window by dragging the scroll bar slider.
......
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