anchor.diff:             (dims (array-dimensions src-buffer))
              (width (second dims))
              (height (first dims)))
  -      (bitblt height width src-buffer 0 0 fb x y))))
  +      (bitblt height width src-buffer 0 0 fb y x))))
   
   (defun compose-all-displays ()
     (when *screens*
  
positive.code: 
  (defmethod key-press-event ((window text-window) character)
    (fifo-push character (text-window-buffer window)))
  
  (defmethod sys.int::stream-read-char ((stream text-window))
    (loop
  
negative.code:           (unless (eql character #\Space)
              (sys.int::render-char-at character fb x 1))
            (incf x width))))))
  
  (defmethod mouse-button-event :around ((window window-with-chrome) button-id state mouse-x mouse-y)
    (let* ((fb (window-backbuffer window))
           (dims (array-dimensions fb)))
      (cond ((or (and (<= 1 mouse-y 17)
                      (<= 1 mouse-x (- (second dims) 2)))
                 (slot-value window 'chrome-drag-state))
             ;; Clicking the titlebar.
             (when (eql button-id 0)
               ;; Engage or disengage window dragging.
               (cond (state
                      (setf (slot-value window 'chrome-drag-state) (cons mouse-x mouse-y))
                      (window-begin-drag window mouse-x mouse-y))
                     (t (when (slot-value window 'chrome-drag-state)
                          (setf (slot-value window 'chrome-drag-state) nil)
                          (window-finish-drag window))))))
            ;; FIXME: Should make window border mouse-sensitive as well.
            (t (call-next-method)))))
  
  (defmethod mouse-move-event :around ((window window-with-chrome) mouse-x mouse-y rel-x rel-y button-state)
    (let* ((fb (window-backbuffer window))
           (dims (array-dimensions fb)))
      (cond ((slot-value window 'chrome-drag-state)
             (multiple-value-bind (win-x win-y)
                 (window-position window)
               (multiple-value-bind (screen-width screen-height)
                   (screen-size)
                 (let* ((dims (array-dimensions (window-frontbuffer window)))
                        (width (second dims))
                        (height (first dims))
                        (new-x (clamp (+ win-x rel-x)
                                      (+ (- width) 2)
                                      (- screen-width 2)))
                        (new-y (clamp (+ win-y rel-y)
                                      0
                                      (- screen-height 2))))
                   (setf (window-position window) (cons new-x new-y)
                         *refresh-required* t)))))
            (t (call-next-method)))))
  
  (defmethod window-redraw :after ((window window))
    (window-swap-buffers window))
  