anchor.diff:        (setf w (min width disp-w)))
       (values x y w h)))
   
  -(defmethod compute-popup-window-position ((gravity gravity-top) source-window width height)
  +(defmethod compute-popup-window-rectangle ((gravity gravity-top) source-window width height)
     (let* ((x (- (floor (display-width) 2)
                         (floor width 2)))
            (y (+ (window-y source-window) 1)))
       (values x y width height)))
   
  -(defmethod compute-popup-window-position ((gravity gravity-topright) source-window width height)
  +(defmethod compute-popup-window-rectangle ((gravity gravity-topright) source-window width height)
     (let* ((b2 (* +border-size+ 2))
            (win-x (window-x source-window))
            (win-y (window-y source-window))
  
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 w h)
          (compute-popup-window-position gravity source-window width height)
        (cond (destination-window
               (lem::window-set-size destination-window w h)
               (lem::window-set-pos destination-window
  
negative.code:             width
              height)))
  
  (defmethod compute-popup-window-rectangle ((gravity gravity-center) source-window width height)
    (let ((x (- (floor (display-width) 2)
                (floor width 2)))
          (y (- (floor (display-height) 2)
                (floor height 2))))
      (values x y width height)))
  
  (defmethod compute-popup-window-rectangle ((gravity gravity-cursor) source-window width height)
    (let* ((b2 (* +border-size+ 2))
           (disp-w (max (- (display-width)  b2 *extra-right-margin*)
                        +min-width+))
  