anchor.diff:          event.preventDefault();
         }
       }));
  -    
  -    
  -    // Install the touchEnd listener.
  -    _dragSubs.add(document.onTouchEnd.listen((TouchEvent event) {
  -      // Set the current position.
  -      _currentDrag.position = event.changedTouches[0].page;
  -      
  -      // Dispatch a drop event.
  -      EventTarget realTarget = _getRealTarget(event.changedTouches[0].client);
  -      _DragEventDispatcher.dispatchDrop(this, realTarget, event.changedTouches[0].page);
  -
  -      // Drag end.
  -      _handleDragEnd(event);
  -    }));
  -    
  -    
  -    // Install the touchCancel listener.
  -    _dragSubs.add(document.onTouchCancel.listen((TouchEvent event) {
  -      // Set the current position.
  -      _currentDrag.position = event.changedTouches[0].page;
  -      
  -      // Drag end.
  -      _handleDragEnd(event);
  -    }));
  -    
  -    // Install esc-key and blur listeners.
  -    _installEscAndBlurListeners();
  -  }
  -  
  -  /**
  -   * Handles mouse down event.
  -   */
  -  void _handleMouseDown(MouseEvent startEvent) {
  -    // Ignore if drag is already beeing handled.
  -    if (_currentDrag != null) {
  -      return;
  -    }
  -    
  -    // Only handle left clicks, ignore clicks from right or middle buttons.
  -    if (startEvent.button != 0) {
  -      return;
  -    }
  -    
  -    // Ensure the drag started on a valid target (with respect to cancel and 
  -    // handle query Strings).
  -    if (!_isValidDragStartTarget(startEvent.target)) {
  -      return; 
  -    }
  -    
  -    _log.fine('MouseDown event.');
  -    
  -    // Initialize the drag info. 
  -    // Note: the drag is not started on mouseDown but after a first valid move.
  -    _currentDrag = new _DragInfo(id, startEvent.currentTarget, startEvent.page, 
  -        avatarHandler: avatarHandler,
  -        horizontalOnly: horizontalOnly, verticalOnly: verticalOnly);
  -    
  -    // Install mouseMove listener.
  +  }
  +  
  +  /**
  +   * Installs the mouseMove listener.
  +   */
  +  void _installMouseMove() {
       _dragSubs.add(document.onMouseMove.listen((MouseEvent event) {
         // Set the current position.
         _currentDrag.position = event.page;
  
positive.code:         _handleDrag(event, realTarget);
        }
      }));
      
      // Install mouseUp listener.
      _dragSubs.add(document.onMouseUp.listen((MouseEvent event) {
        // Set the current position.
        _currentDrag.position = event.page;
  
negative.code:       
        _handleDragEnd(event);
      }));
    }
    
    /**
  