anchor.diff:                         :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)
  +(defclass scroll-bar-pane (sheet-multiple-child-mixin
  +                           3D-border-mixin
  +                           scroll-bar
  +                           )
     ((event-state :initform nil)
  -   (drag-dy :initform nil))
  +   (drag-dy :initform nil)
  +   (inhibit-redraw-p
  +    :initform nil
  +    :documentation "Hack, when set to non-NIL changing something does not trigger redrawing.")
  +   (thumb :initform nil)
  +   )
     (:default-initargs :value 0
                        :min-value 0
                        :max-value 1
                        :orientation :vertical
                        :border-width 2
  -                     :border-style :inset))
  +                     :border-style :inset
  +                     :background *3d-inner-color*))
   
   (defmethod compose-space ((sb scroll-bar-pane) &key width height)
     (declare (ignore width height))
  
positive.code: 
  ;;; Common colors:
  
  (defmethod gadget-highlight-background ((gadget standard-gadget))
    (compose-over (compose-in +paleturquoise+ (make-opacity .5))
                  (pane-background gadget)))
  
  (defmethod effective-gadget-foreground ((gadget standard-gadget))
    (if (gadget-active-p gadget)
        +foreground-ink+
        (compose-over (compose-in (pane-foreground gadget)
                                  (make-opacity .5))
                      (pane-background gadget))))
  
  (defmethod effective-gadget-background ((gadget standard-gadget))
    (if (slot-value gadget 'armed)
        (gadget-highlight-background gadget)
        (pane-background gadget)))
  
  (defmethod effective-gadget-input-area-color ((gadget standard-gadget))
    (if (gadget-active-p gadget)
        +LEMONCHIFFON+
        (compose-over (compose-in +LEMONCHIFFON+ (make-opacity .5))
  
negative.code: 
  ;;; Scroll-bar's sub-regions
  
  (defmethod (setf scroll-bar-thumb-size) :after (new-value (sb scroll-bar-pane))
    (declare (ignore new-value))
    (with-slots (inhibit-redraw-p thumb) sb
      #||
      ;;work in progress
      (setf (sheet-region thumb)
            (with-bounding-rectangle* (x1 y1 x2 y2) (scroll-bar-thumb-bed-region sb)
              (multiple-value-bind (minv maxv) (gadget-range* sb)
                (multiple-value-bind (v) (gadget-value sb)
                  (let ((ts (scroll-bar-thumb-size sb)))
                    (let ((ya (translate-range-value v minv (+ maxv ts) y1 y2))
                          (yb (translate-range-value (+ v ts) minv (+ maxv ts) y1 y2)))
                      (make-rectangle* 0 0 (- x2 x1) (- yb ya))))))))
      ||#
      (unless inhibit-redraw-p
        (dispatch-repaint sb +everywhere+)))) ;arg...
  
  (defmethod scroll-bar-up-region ((sb scroll-bar-pane))
    (with-bounding-rectangle* (minx miny maxx maxy) (transform-region (scroll-bar-transformation sb)
  