anchor.diff:                    (focus (add window))))
                  (:destroy-notify
                   (window)
  -                (when (member window *windows* :test #'win=)
  -                  (setf *windows* (rrem window *windows* :test #'window-equal))
  -                  (let (move-focus)
  -                    (when (win= window *last*)
  -                      (setf *last* (find-if #'(lambda (w) (win= w *last*)) *windows*)))
  -                    (when (win= window *curr*)
  -                      (let ((ncurr (find-if #'(lambda (w) (win= w *curr*)) *windows*)))
  -                        (if ncurr 
  -                            (setf *curr* ncurr)
  -                            (setf *curr* (next #'1+ *last*)
  -                                  move-focus t))))
  -                    (when (null *last*)
  -                      (setf *last* (next #'1+ *curr*)))
  -                    (when move-focus (focus *last*)))))))
  +                (focus (destroy window)))))
         (ungrab-button *root* (code *move*) :modifiers (state *move*))
         (ungrab-button *root* (code *resize*) :modifiers (state *resize*))
         (ungrab-button *root* (code *kill*) :modifiers (state *kill*))
  
positive.code:   (dolist (w window)
      (when (eql (window-map-state w) :viewable)
        (setf (window-priority w) :above)))
    (set-input-focus *display* :pointer-root :pointer-root))
  
  (defmethod focus :after (window) (display-finish-output *display*))
  
  
negative.code:        (pushnew (cons ,sc #'(lambda () ,@body)) *shortcuts* :test #'equal :key #'car))))
  
  (defmethod focus :before (window)
    (unless (null window)
      (unless (win= window *curr*) (setf *last* *curr*))
      (setf *curr* window)))
  
  (defmethod focus ((window window))
    (when (eql (window-map-state window) :viewable)
  