anchor.diff:  ;;;; Mouse events
   
   (defclass mouse-event ()
  -  ((%button-state :initarg :button-state :reader mouse-button-state)
  +  ((%window :initarg :window :reader window)
  +   (%button-state :initarg :button-state :reader mouse-button-state)
      (%button-change :initarg :button-change :reader mouse-button-change)
      (%x-position :initarg :x-position :reader mouse-x-position)
      (%y-position :initarg :y-position :reader mouse-y-position)
      (%x-motion :initarg :x-motion :reader mouse-x-motion)
      (%y-motion :initarg :y-motion :reader mouse-y-motion))
  -  (:default-initargs :button-state nil
  +  (:default-initargs :window nil
  +                     :button-state nil
                        :button-change 0
                        :x-position nil
                        :y-position nil
  
positive.code:                                                  :window *active-window*
                                                   :state nil)))
      (setf *active-window* win)
      (send-event win (make-instance 'window-activation-event
                                     :window win
                                     :state t))))
  
negative.code:                 *clip-rect-height* (mezzanine.supervisor:framebuffer-height *main-screen*)
                  *clip-rect-x* 0
                  *clip-rect-y* 0))))
      (when (or (not (zerop x-motion))
                (not (zerop y-motion))
                (not (zerop changes)))
        (let ((win (window-at-point *mouse-x* *mouse-y*)))
          (when win
            (send-event win (make-instance 'mouse-event
                                           :window win
                                           :button-state *mouse-buttons*
                                           :button-change changes
                                           :x-position (- *mouse-x* (window-x win))
                                           :y-position (- *mouse-y* (window-y win))
                                           :x-motion x-motion
                                           :y-motion y-motion)))))
      (when (or (not (zerop x-motion))
                (not (zerop y-motion)))
        ;; Mouse position changed, redraw the screen.
  