anchor.diff:     (drag-delta
        :initform 0)
      (bounce-value
  -     :initform 0))
  +     :initform 0)
  +   (thumb-size
  +     :initarg  :thumb-size
  +     :initform 1/4
  +     :accessor gadget-thumb-size))
     (:default-initargs
       :border-style :inset
       :border-width 1))
  +
  +(defmethod compose-space ((pane pixie-slider-pane) &key width height)
  +  (declare (ignore width height))
  +  (if (eq (gadget-orientation pane) :vertical)
  +      (make-space-requirement :min-width   *scrollbar-thickness*
  +			      :width       *scrollbar-thickness*
  +                              :max-width   +fill+
  +			      :min-height  (* 2 *scrollbar-thickness*)
  +			      :height      (* 4 *scrollbar-thickness*)
  +                              :max-height  +fill+)
  +      (make-space-requirement :min-height  *scrollbar-thickness*
  +			      :height      *scrollbar-thickness* 
  +			      :max-height  +fill+
  +			      :min-width   (* 2 *scrollbar-thickness*)
  +			      :width       (* 4 *scrollbar-thickness*)
  +                              :max-width   +fill+)))
   
   (defmethod vertical-gadget-orientation-transformation ((pane gadget))
     (ecase (gadget-orientation pane)
  
positive.code: 
  (defclass pixie-menu-button-pane (pixie-gadget menu-button-pane) ())
  
  (defmethod handle-event ((pane pixie-menu-button-pane) (event pointer-enter-event))
    (when (slot-value (slot-value pane 'client) 'armed)
      (arm-branch pane)))
  
  (defmethod handle-event ((pane pixie-menu-button-pane) (event pointer-button-press-event))
    (arm-branch pane))
  
  (defmethod handle-event ((pane pixie-menu-button-pane) (event pointer-ungrab-event))
    (destroy-substructure (menu-root pane)))
  
  
  (defmethod handle-repaint ((pane pixie-menu-button-pane) region)
    (declare (ignore region))
    (with-special-choices (pane)
  
negative.code: 
  ; Push Button
  
  ; why does this inherit from slider-pane?
  (defclass pixie-push-button-pane  (pixie-gadget push-button-pane slider-pane) (
    (dragging
      :initform nil)))
  
  (defmethod compose-space ((gadget pixie-push-button-pane) &key width height)
    (declare (ignore width height))
    (space-requirement+* (space-requirement+* (compose-label-space gadget)
                                              :min-width (* 2 (pane-x-spacing gadget))
                                              :width (* 2 (pane-x-spacing gadget))
                                              :max-width (* 2 (pane-x-spacing gadget))
                                              :min-height (* 2 (pane-y-spacing gadget))
                                              :height (* 2 (pane-y-spacing gadget))
                                              :max-height (* 2 (pane-y-spacing gadget)))
                         :min-width  (* 2 *3d-border-thickness*)
                         :width      (* 2 *3d-border-thickness*)
                         :max-width  (* 2 *3d-border-thickness*)
                         :min-height (* 2 *3d-border-thickness*)
                         :height     (* 2 *3d-border-thickness*)
                         :max-height (* 2 *3d-border-thickness*)))
  
  ; 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)
        (setf armed t)
        (armed-callback pane (gadget-client pane) (gadget-id pane)))
       (dragging
  