anchor.diff:    (if (typep gravity 'gravity)
         gravity
         (ecase gravity
  +        (:center (make-instance 'gravity-center))
           (:top (make-instance 'gravity-top))
           (:topright (make-instance 'gravity-topright))
           (:cursor (make-instance 'gravity-cursor))
  
positive.code:     (lem::window-set-pos popup-window
                           (+ x +border-size+)
                           (+ y +border-size+))))
  
  (defmethod compute-popup-window-position ((gravity gravity-cursor) source-window width height)
    (let* ((b2 (* +border-size+ 2))
  
negative.code: 
  (defgeneric compute-popup-window-position (gravity source-window width height))
  
  (defclass gravity ()
    ((offset-x :initarg :offset-x :reader gravity-offset-x :initform 0)
     (offset-y :initarg :offset-y :reader gravity-offset-y :initform 0)))
  (defclass gravity-center (gravity) ())
  (defclass gravity-top (gravity) ())
  (defclass gravity-topright (gravity) ())
  (defclass gravity-cursor (gravity) ())
  