anchor.diff:                  (otherwise
                    (draw-polygon sb pg :ink *3d-normal-color*)
                    (draw-bordered-polygon sb pg :style :outset :border-width 2)))))
  -
             ;; draw thumb
             (with-bounding-rectangle* (x1 y1 x2 y2) (scroll-bar-thumb-region sb)
               (draw-rectangle* sb x1 y1 x2 y2 :ink *3d-normal-color*)
  
positive.code: 
  ;;; Scroll-bar's sub-regions
  
  #+NIL
  (defmethod scroll-bar-thumb-size ((sb scroll-bar-pane))
    "Return the size of the scrollbar's thumb."
    (multiple-value-bind (minv maxv) (gadget-range* sb)
      (max 1/100000                         ;hack to cope with GADGET-RANGE* being empty
           (* 1/3 (- maxv minv)))))
  
  (defmethod (setf scroll-bar-thumb-size) :after (new-value (sb scroll-bar-pane))
    (declare (ignore new-value))
    (handle-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)
  
negative.code:                  (copy-area sb ox1 oy1 (- ox2 ox1) (- oy2 oy1) nx1 ny1)
                   (if (< oy1 ny1)
                       (draw-rectangle* sb ox1 oy1 ox2 ny1 :ink *3d-normal-color*)
                       (draw-rectangle* sb ox1 oy2 ox2 ny2 :ink *3d-normal-color*)))))
             #+NIL
             (dispatch-repaint sb +everywhere+)
             (unwind-protect
                  (progn
                    (setf inhibit-redraw-p t)
                    (setf (gadget-value sb) new-value)
                    (drag-callback sb (gadget-client sb) (gadget-id sb)
                                   new-value))
               (setf inhibit-redraw-p nil))
             ))))))
  
  ;;; Repaint
  
  