anchor.diff:                           (+ x +border-size+)
                            (+ y +border-size+))))
   
  -(defmethod compute-popup-window-position :around ((gravity gravity) source-window width height)
  +(defmethod compute-popup-window-rectangle :around ((gravity gravity) source-window width height)
     (multiple-value-bind (x y width height)
         (call-next-method)
       (values (+ x (gravity-offset-x gravity))
  
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:       (setf w (min width disp-w)))
      (values x y w h)))
  
  (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-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))
  