mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
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).
This commit is contained in:
parent
506ed5fd5e
commit
c0809ff23d
1 changed files with 16 additions and 8 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue