anchor.diff:        (push win *m-tab-list*))
       (expand-clip-rectangle-by-window win)))
   
  -(defmacro with-window ((window fifo width height &rest options) &body body)
  +(defmacro with-window ((window mailbox width height &rest options) &body body)
     `(let (,window)
        (unwind-protect
  -          (progn (setf ,window (mezzano.gui.compositor:make-window ,fifo ,width ,height ,@options))
  +          (progn (setf ,window (mezzano.gui.compositor:make-window ,mailbox ,width ,height ,@options))
                    ,@body)
          (when ,window
            (mezzano.gui.compositor:close-window ,window)))))
   
  -(defun make-window (fifo width height &key layer initial-z-order kind)
  +(defun make-window (mailbox width height &key layer initial-z-order kind)
     (let ((window (make-instance 'window
  -                               :fifo fifo
  +                               :mailbox mailbox
                                  :thread (mezzano.supervisor:current-thread)
                                  :buffer (mezzano.gui:make-surface width height)
                                  :layer layer
  
positive.code:   ((%x :initarg :x :accessor window-x)
     (%y :initarg :y :accessor window-y)
     (%thread :initarg :thread :accessor window-thread)
     (%fifo :initarg :fifo :reader fifo)
     (%buffer :initarg :buffer :reader window-buffer)
     (%layer :initarg :layer :reader layer)
     (%subscribed-notifications :initarg :notifications :reader subscribed-notifications)
  
negative.code: 
  (defun send-event (window event)
    "Send an event to a window."
    (cond ((mezzano.sync:mailbox-send event (mailbox window) :wait-p nil)
           (when (window-unresponsive window)
             (expand-clip-rectangle-by-window window)
             (setf (window-unresponsive window) nil)))
  