anchor.diff:                 (bed-region      (gadget-bed-region pane))
                  (miny            (bounding-rectangle-min-y bed-region))
                  (maxy            (bounding-rectangle-max-y bed-region))
  -               (thumb-size      (/ +pixie-slider-pane-thumb-size+ (- maxy miny)))
  -               (value (min (gadget-max-value pane)
  -                           (max (gadget-min-value pane)
  -                                (translate-range-value y-new-thumb-top
  -                                              (bounding-rectangle-min-y (gadget-bed-region pane))
  -                                              (bounding-rectangle-max-y (gadget-bed-region pane))
  -                                              (gadget-min-value pane)
  -                                              (+ (gadget-max-value pane) thumb-size))))))
  +               (minv            (gadget-min-value pane))
  +               (maxv            (gadget-max-value pane))
  +               (thumb-size      (* thumb-size (- minv maxv)))
  +               (value           (min maxv
  +                                     (max minv
  +                                          (translate-range-value
  +                                              (+ y-new-thumb-top +pixie-slider-thumb-half-height+)
  +                                              (+ miny +pixie-slider-thumb-half-height+)
  +                                              (- maxy +pixie-slider-thumb-half-height+)
  +                                              minv
  +                                              maxv)))))
   	  (setf (gadget-value pane :invoke-callback nil) value)
   	  (drag-callback pane (gadget-client pane) (gadget-id pane) value)
   	  (dispatch-repaint pane (sheet-region pane)))))))
  
positive.code: 
  ; Push Button
  
  (defclass pixie-push-button-pane  (pixie-gadget push-button-pane slider-pane) (
    (dragging
      :initform nil)))
  
  ; factor out the dragging code into a mixin
  (defmethod handle-event ((pane pixie-push-button-pane) (event pointer-enter-event))
    (with-slots (armed dragging) pane
      (cond
       ((not armed)
  (print "arming")
        (setf armed t)
        (armed-callback pane (gadget-client pane) (gadget-id pane)))
       (dragging
  
negative.code: (defconstant +pixie-scroll-bar-thumb-half-width+   8)
  
  (defclass pixie-scroll-bar-pane (pixie-slider-pane) (
     (drag-callback
       :initarg :drag-callback
       :initform nil
       :reader scroll-bar-drag-callback)
     (scroll-to-bottom-callback
       :initarg :scroll-to-bottom-callback
       :initform nil
       :reader scroll-bar-scroll-to-bottom-callback)
     (scroll-to-top-callback
       :initarg :scroll-to-top-callback
       :initform nil
       :reader scroll-bar-scroll-to-top-callback)
     (scroll-down-line-callback
       :initarg :scroll-down-line-callback
       :initform nil
       :reader scroll-bar-scroll-down-line-callback)
     (scroll-up-line-callback
       :initarg :scroll-up-line-callback
       :initform nil
       :reader scroll-bar-scroll-up-line-callback)
     (scroll-down-page-callback
       :initarg :scroll-down-page-callback
       :initform nil
       :reader scroll-bar-scroll-down-page-callback)
     (scroll-up-page-callback
       :initarg :scroll-up-page-callback
       :initform nil
       :reader scroll-bar-scroll-up-page-callback)
     (thumb-size
       :initarg :thumb-size
       :initform 1/4
       :accessor gadget-thumb-size))
    (:default-initargs
       :value 0
       :min-value 0
       :max-value 1
       :orientation :vertical))
  
  (defmethod compose-space ((pane pixie-scroll-bar-pane) &key width height)
    (declare (ignore width height))
    (if (eq (gadget-orientation pane) :vertical)
        (make-space-requirement :min-width   1
  			      :width       *scrollbar-thickness*
  			      :min-height (* 3 *scrollbar-thickness*)
  			      :height     (* 4 *scrollbar-thickness*))
        (make-space-requirement :min-height  1
  			      :height      *scrollbar-thickness*
  			      :min-width  (* 3 *scrollbar-thickness*)
  			      :width      (* 4 *scrollbar-thickness*))))
  
  (defmethod drag-callback ((pane pixie-scroll-bar-pane) client gadget-id value)
    (declare (ignore client gadget-id))
  