anchor.diff:  ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   ;;; Boston, MA  02111-1307  USA.
   
  -;;; $Id: panes.lisp,v 1.163 2005-11-29 14:46:53 gbaumann Exp $
  +;;; $Id: panes.lisp,v 1.164 2005-11-30 10:30:50 gbaumann Exp $
   
   (in-package :clim-internals)
   
  
positive.code: 
  (defmethod compose-space ((pane scroller-pane) &key width height)
    (declare (ignore width height))
    (with-slots (viewport vscrollbar hscrollbar suggested-width suggested-height) pane
      (if viewport
          (let ((req
                 ; v-- where does this requirement come from?
                 ;     a: just an arbitrary default
  		(make-space-requirement
                  :width suggested-width :height suggested-height :max-width +fill+ :max-height +fill+
                  :min-width 30
                  :min-height 30)
  		#+nil
  		(make-space-requirement :height +fill+ :width +fill+)))
            (when vscrollbar
  
negative.code:    align-x, align-y name the desired child alignment.
     If the child does not have enough strechability to cover all of the
     given area, it is aligned within that area according to the given
     options.
  
     As a special option we allow align-x or align-y be :expand, which
     means that the child wouldn't be aligned in that direction but its
     size would be forced."
    (let* ((sr           (compose-space child))
           ;; The child's dimension is clamped within its min/max space requirement
           (child-width  (if (eql :expand align-x)
                             width
                             (clamp width
                                    (space-requirement-min-width sr)
                                    (space-requirement-max-width sr))))
           (child-height (if (eql :expand align-y)
                             height
                             (clamp height
                                    (space-requirement-min-height sr)
                                    (space-requirement-max-height sr))))
           ;; Align the child within the available area
           (child-x      (ecase align-x
                           ((:left)   x)
                           ((:center) (+ x (/ (- width child-width) 2)))
                           ((:right)  (+ x (- width child-width)))
                           ((:expand)  x) ))
           (child-y      (ecase align-y
                           ((:top)    y)
                           ((:center) (+ y (/ (- height child-height) 2)))
                           ((:bottom) (+ y (- height child-height)))
                           ((:expand)  y) )))
      ;; Actually layout the child
      (move-sheet child child-x child-y)
      (resize-sheet child child-width child-height)
  