anchor.diff:               (setf event-state :dragging
                      drag-dy (- y (bounding-rectangle-min-y (scroll-bar-thumb-region sb)))))
               ((region-contains-position-p (scroll-bar-thumb-bed-region sb) x y)
  -             (if (< y (bounding-rectangle-min-y (scroll-bar-thumb-bed-region sb)))
  +             (if (< y (bounding-rectangle-min-y (scroll-bar-thumb-region sb)))
                    (scroll-up-page-callback sb (gadget-client sb) (gadget-id sb))
                    (scroll-down-page-callback sb (gadget-client sb) (gadget-id sb))))
               (t
  
positive.code:                        :min-height (* 2 *3d-border-thickness*)
                         :height (* 2 *3d-border-thickness*)
                         :max-height (* 2 *3d-border-thickness*)))
  ;;; ------------------------------------------------------------------------------------------
  ;;;  30.4.4 The concrete scroll-bar Gadget
  
  (defclass scroll-bar-pane (3D-border-mixin scroll-bar)
    ((event-state :initform nil)
     (drag-dy :initform nil))
    (:default-initargs :value 0
                       :min-value 0
                       :max-value 1
                       :orientation :vertical
                       :border-width 2
                       :border-style :inset))
  
  (defmethod compose-space ((sb scroll-bar-pane) &key width height)
    (declare (ignore width height))
  
negative.code:   (multiple-value-bind (x y) (transform-position (scroll-bar-transformation sb)
                                                   (pointer-event-x event) (pointer-event-y event))
      (declare (ignore x))
      (with-slots (event-state drag-dy inhibit-redraw-p) sb
        (case event-state
          (:dragging
           (let* ((y-new-thumb-top (- y drag-dy))
                  (ts (scroll-bar-thumb-size sb))
                  (new-value (min (gadget-max-value sb)
                                  (max (gadget-min-value sb)
                                       (translate-range-value y-new-thumb-top
                                                              (bounding-rectangle-min-y (scroll-bar-thumb-bed-region sb))
                                                              (bounding-rectangle-max-y (scroll-bar-thumb-bed-region sb))
                                                              (gadget-min-value sb)
                                                              (+ (gadget-max-value sb) ts))))))
             ;; Blitter hack:
             #-NIL
             (with-drawing-options (sb :transformation (scroll-bar-transformation sb))
  