anchor.diff:      :reader popup-window-gravity)
      (source-window
       :initarg :source-window
  -    :reader popup-window-source-window))
  +    :reader popup-window-source-window)
  +   (base-width
  +    :initarg :base-width
  +    :reader popup-window-base-width)
  +   (base-height
  +    :initarg :base-height
  +    :reader popup-window-base-height))
     (:default-initargs
      :border +border-size+))
   
  
positive.code:                       +min-width+))
           (disp-h (max (- (display-height) b2)
                        +min-height+))
           (x (+ (window-x source-window)
                 (window-cursor-x source-window)))
           (y (+ (window-y source-window)
                 (window-cursor-y source-window)
                 1))
           (w (max (+ width *extra-width-margin*)
                   +min-width+))
           (h (max height
                   +min-height+)))
      ;; calc y and h
      (when (> (+ y height) disp-h)
        (decf h (- (+ y height) disp-h)))
  
negative.code:                      +min-width+))
           (win-h (max (- (window-height source-window) b2)
                       +min-height+))
           (width  (max (+ width *extra-width-margin*)
                        +min-width+))
           (height (max height
                        +min-height+))
           (x (+ win-x (- win-w width)))
           (y (+ win-y 1))
           (w width)
           (h height))
      ;; calc y and h
      (when (> (+ y height) (+ win-y win-h))
        (decf h (- (+ y height) (+ win-y win-h))))
  