anchor.diff:    (multiple-value-bind (x y width height)
         (compute-popup-window-position (popup-window-gravity popup-window)
                                        (popup-window-source-window popup-window)
  -                                     (window-width popup-window)
  -                                     (window-height popup-window))
  +                                     (popup-window-base-width popup-window)
  +                                     (popup-window-base-height popup-window))
       (lem::window-set-size popup-window width height)
       (lem::window-set-pos popup-window
                            (+ x +border-size+)
  
positive.code: 
  (defun popup-window (source-window buffer width height &key destination-window (gravity :cursor))
    (let ((gravity (ensure-gravity gravity)))
      (multiple-value-bind (x y width height)
          (compute-popup-window-position gravity source-window width height)
        (cond (destination-window
               (lem::window-set-size destination-window width height)
               (lem::window-set-pos destination-window
                                    (+ x +border-size+)
                                    (+ y +border-size+))
  
negative.code:                             :buffer buffer
                              :x (+ x +border-size+)
                              :y (+ y +border-size+)
                              :width  w
                              :height h
                              :use-modeline-p nil
                              :gravity gravity
                              :source-window source-window
                              :base-width  width
                              :base-height height))))))
  
  (defun quit-popup-window (floating-window)
    (delete-window floating-window))
  