(scroll-bar-toolkit-scroll): add handling of the `ratio'
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 19 Nov 1999 20:18:47 +0000 (20:18 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 19 Nov 1999 20:18:47 +0000 (20:18 +0000)
event for Xaw and Xaw3d(without arrows) scrollbars.

lisp/ChangeLog
lisp/scroll-bar.el

index 8079b44..f98b371 100644 (file)
@@ -1,5 +1,8 @@
 1999-11-19  Stefan Monnier  <monnier@cs.yale.edu>
 
+       * scroll-bar.el (scroll-bar-toolkit-scroll): add handling of the `ratio'
+       event for Xaw and Xaw3d(without arrows) scrollbars.
+
        * files.el (auto-mode-alist): add patterns for diff-mode.
 
        * complete.el (PC-do-complete-and-exit): use minibuffer-prompt-end to
index 4499c0b..aea8c8e 100644 (file)
@@ -316,6 +316,13 @@ EVENT should be a scroll bar click."
                    (scroll-up '-))
                   ((eq part 'below-handle)
                    (scroll-up nil))
+                  ((eq part 'ratio)
+                   (let* ((portion-whole (nth 2 end-position))
+                          (lines (scroll-bar-scale portion-whole
+                                                   (1- (window-height)))))
+                     (scroll-up (cond ((not (zerop lines)) lines)
+                                      ((< (car portion-whole) 0) -1)
+                                      (t 1)))))
                   ((eq part 'up)
                    (scroll-up -1))
                   ((eq part 'down)
@@ -330,7 +337,7 @@ EVENT should be a scroll bar click."
           (sit-for 0)
           (unless scroll-bar-timer
             (setq scroll-bar-timer
-                  (run-with-timer 0.1 0.1 'xt-process-timeouts)))
+                  (run-with-timer 0.1 0.1 'xt-process-timeouts)))
           (with-current-buffer (window-buffer window)
             (setq point-before-scroll before-scroll))))))