anchor.diff:       &key pointer multiple-window transformp context-type highlight)
     (declare (ignore args pointer context-type highlight frame))
     (with-sheet-medium (medium sheet)
  -    (flet ((do-tracking ()
  -	     (loop
  -		for event = (event-read sheet)
  -		do (if (typep event 'pointer-event)
  -		       (multiple-value-bind (sheet-x sheet-y)
  -			   (pointer-event-position* event)
  -			 (multiple-value-bind (x y)
  -			     (if transformp
  -				 (transform-position
  -				  (medium-transformation medium)
  -				  sheet-x
  -				  sheet-y)
  -				 (values sheet-x sheet-y))
  -			   (tracking-pointer-loop-step state event x y)))
  -		       (tracking-pointer-loop-step state event 0 0)))))
  -      (if multiple-window
  -	  (with-pointer-grabbed ((port medium) sheet)
  -	    (do-tracking))
  -	  (do-tracking)))))
  +    (loop
  +       for event = (event-read sheet)
  +       do (cond ((not (typep event 'pointer-event))
  +                 (tracking-pointer-loop-step state event 0 0))
  +                ((or multiple-window
  +                     (eql (event-sheet event) sheet))
  +                 (multiple-value-bind (sheet-x sheet-y)
  +                     (pointer-event-position* event)
  +                   (multiple-value-bind (x y)
  +                       (if transformp
  +                           (transform-position (medium-transformation medium)
  +                                               sheet-x
  +                                               sheet-y)
  +                           (values sheet-x sheet-y))
  +                     (tracking-pointer-loop-step state event x y))))))))
   
   (defmethod tracking-pointer-loop-step
       ((state tracking-pointer-state) (event pointer-motion-event) x y)
  
positive.code:      &key (repaint t) (erase #'erase-output-record)
       feedback finish-on-release multiple-window
       feedback-event erase-final)
    (declare (ignore erase repaint multiple-window))
    (let ((feedback-event-fn
  	 (cond (feedback-event
  		feedback-event)
  
negative.code:       (multiple-value-bind (x0 y0)
  	  (stream-pointer-position stream)
  	(funcall feedback-event-fn record stream x0 y0 x0 y0 nil)
  	(tracking-pointer (stream :multiple-window multiple-window)
  	 (:pointer-motion (&key event x y)
  	   ;; XXX What about the sheet?
  	   (funcall feedback-event-fn record stream x0 y0 x y event)
  