anchor.diff:  
   (defclass graphic-forms-port (basic-port)
     ((id)
  -   (event
  -    :accessor event
  +   (events
  +    :accessor events
       :initform nil)
      (pointer
       :accessor port-pointer
       :initform (make-instance 'gfw-pointer))))
  +
  +(defun enqueue (port event)
  +  (push event (events port)))
   
   (defvar *sheet-dispatcher* (make-instance 'sheet-event-dispatcher))
   
  
positive.code: 
  (defmethod gfw:event-mouse-move
      ((self sheet-event-dispatcher) mirror point button)
    (setf (event (port self))
  	(make-instance 'pointer-motion-event
  		       :pointer 0
  		       :sheet (sheet mirror)
  		       :x (gfs:point-x point)
  		       :y (gfs:point-y point)
  		       :button (translate-button-name button)
  		       ;; FIXME:
  ;;;  		       :timestamp
  ;;; 		       :graft-x
  ;;; 		       :graft-y
  		       :modifier-state 0
  		       )))
  
  (defmethod gfw:event-mouse-down ((self sheet-event-dispatcher) mirror point button)
    (setf (event (port self))
  	(make-instance 'pointer-button-press-event
  		       :pointer 0
  		       :sheet (sheet mirror)
  		       :x (gfs:point-x point)
  		       :y (gfs:point-y point)
  		       :button (translate-button-name button)
  		       ;; FIXME:
  ;;;  		       :timestamp
  ;;; 		       :graft-x
  ;;; 		       :graft-y
  		       :modifier-state 0
  		       )))
  
  (defmethod gfw:event-mouse-up ((self sheet-event-dispatcher) mirror point button)
    (setf (event (port self))
  	(make-instance 'pointer-button-release-event
  		       :pointer 0
  		       :sheet (sheet mirror)
  		       :x (gfs:point-x point)
  		       :y (gfs:point-y point)
  		       :button (translate-button-name button)
  		       ;; FIXME:
  ;;;  		       :timestamp
  ;;; 		       :graft-x
  ;;; 		       :graft-y
  		       :modifier-state 0
  		       )))
  
  (defun char-to-sym (char)
    (case char
  
negative.code:     (#\Tab :TAB) (#\Return :RETURN) (#\Rubout :DELETE)))
  
  (defmethod gfw:event-key-down ((self sheet-event-dispatcher) mirror code char)
    (enqueue (port self)
  	   (make-instance 'key-press-event
  			  :key-name (char-to-sym char)
  			  :key-character char
  			  :sheet (sheet mirror)
  			  ;; FIXME:
  			  :x 0
  			  :y 0
  			  :modifier-state 0
  ;;; 			 :graft-x root-x
  ;;; 			 :graft-y root-y
  			  )))
  
  (defmethod gfw:event-key-up ((self sheet-event-dispatcher) mirror code char)
    (enqueue (port self)
  	   (make-instance 'key-release-event
  			  :key-name (char-to-sym char)
  			  :key-character char
  			  :sheet (sheet mirror)
  			  ;; FIXME:
  			  :x 0
  			  :y 0
  			  :modifier-state 0
  ;;; 			 :graft-x root-x
  ;;; 			 :graft-y root-y
  			  )))
  
  
  ;;;
  