anchor.diff:  (defvar *action-callback* nil)
   (defvar *focus-attribute* nil)
   (defvar *non-focus-attribute* nil)
  +
  +(defclass popup-window (floating-window)
  +  ()
  +  (:default-initargs
  +   :border +border-size+))
   
   (define-attribute popup-menu-attribute
     (t :foreground "white" :background "RoyalBlue"))
  
positive.code:       (buffer-start p)
        (loop :do (move-to-column p max-column t)
              :while (line-offset p 1))
        (put-text-property (buffer-start-point buffer)
                           (buffer-end-point buffer)
                           :attribute 'popup-window-attribute)
        (values buffer
                max-column
                (buffer-nlines buffer)))))
  
  (defmethod lem-if:display-popup-message (implementation text timeout)
    (clear-popup-message)
    (multiple-value-bind (buffer width height)
        (make-popup-buffer text)
      (let ((window (popup-window (current-window) buffer width height)))
        (buffer-start (window-view-point window))
        (window-see window)
  
negative.code:         (start-timer (* timeout 1000) nil 'clear-popup-message))
        window)))
  
  (defun display-popup-message-default (text timeout)
    (clear-popup-message)
    (multiple-value-bind (buffer width height)
        (make-popup-buffer text)
      (display-popup-buffer-default buffer timeout (list width height))))
  
  (defmethod lem-if:display-popup-message (implementation text timeout)
    (display-popup-message-default text timeout))
  
  (defmethod lem-if:display-popup-buffer (implementation buffer width height timeout)
    (display-popup-buffer-default buffer timeout (list width height)))
  
  (defmethod lem-if:delete-popup-message (implementation popup-message)
    (when (windowp popup-message)
  