anchor.diff:                              :buffer buffer
                               :x (+ x +border-size+)
                               :y (+ y +border-size+)
  -                            :width width
  -                            :height height
  +                            :width  w
  +                            :height h
                               :use-modeline-p nil
  +                            :gravity gravity
                               :source-window source-window
  -                            :gravity gravity
  -                            :source-window source-window))))))
  +                            :base-width  width
  +                            :base-height height))))))
   
   (defun quit-popup-window (floating-window)
     (delete-window floating-window))
  
positive.code:     :reader popup-window-gravity)
     (source-window
      :initarg :source-window
      :reader popup-window-source-window))
    (:default-initargs
     :border +border-size+))
  
  
negative.code:                       +min-width+))
           (disp-h (max (- (display-height) b2)
                        +min-height+))
           (width  (max (+ width *extra-width-margin*)
                        +min-width+))
           (height (max height
                        +min-height+))
           (x (+ (window-x source-window)
                 (window-cursor-x source-window)))
           (y (alexandria:clamp
               (+ (window-y source-window)
                  (window-cursor-y source-window)
                  1)
               0
               (1- (display-height))))
           (w width)
           (h height))
      ;; calc y and h
      (when (> (+ y height) disp-h)
        (decf h (- (+ y height) disp-h)))
  