anchor.diff:  (in-package #:sys.graphics)
   
   (defclass window-with-chrome (window)
  -  ((chrome-drag-state :initform '())))
  +  ((chrome-drag-state :initform '())
  +   (has-close-button :initarg :close-button :initform 't)))
   
   (defmethod compute-window-margins ((window window-with-chrome))
     (values 1 1 19 1))
  
positive.code:                                               fb 1 x))
                      (t))))
            (incf x width))))
      ;; Close button. Unifont uses a chunky double-wide X.
      (let* ((glyph (sys.int::map-unifont (name-char "Multiplication-X")))
             (width (truncate (length glyph) 16)))
        (cond (glyph
               (bitset-argb-xrgb-mask-1 16 width (make-colour :red)
                                        (make-array (list 16 width) :displaced-to glyph) 0 0
                                        fb 2 (- (second dims) 1 16)))
              (t)))))
  
  (defmethod mouse-button-event :around ((window window-with-chrome) button-id clickedp mouse-x mouse-y)
    (let* ((fb (window-backbuffer window))
           (dims (array-dimensions fb)))
      (cond ((and (not (slot-value window 'chrome-drag-state))
                  (<= 1 mouse-y 17)
                  (<= (- (second dims) 1 16) mouse-x (- (second dims) 1)))
             ;; Close button.
  
negative.code: (defun create-lisp-listener ()
    (window-set-visibility (make-window "Lisp Listener" 640 400 'lisp-listener) t))
  
  (defvar *console-window* (make-window "Console" 640 400 'text-window-with-chrome :close-button nil))
  (window-set-visibility *console-window* t)
  