anchor.diff:      // anything. But if the switch is made, "draggable" for the element should
       // be set as well.
       // See bug https://code.google.com/p/chromium/issues/detail?id=264983.
  -    onMouseDown.listen(dragStart);
  +    onMouseDown.listen(trackStart);
       directionChanged();
     }
   
  
positive.code:   static final _sizeRe = new RegExp("([0-9]+)(\.[0-9]+)?px");
  
    /// Temporary subsciptions to event streams, active only during dragging.
    StreamSubscription<MouseEvent> _dragSubscr;
    StreamSubscription<MouseEvent> _dragEndSubscr;
  
    /// Constructor.
    SparkSplitter.created() : super.created() {
  
negative.code:       // the entire document; otherwise, once/if the cursor leaves the boundary
        // of our element, the events will stop firing, leaving us in a permanent
        // "sticky" dragging state.
        _trackSubscr = document.onMouseMove.listen(track);
        _trackEndSubscr = document.onMouseUp.listen(trackEnd);
      }
    }
  
    /// While dragging, update the target's size based on the mouse movement.
    void track(MouseEvent e) {
      // Recheck [locked], in case it's been changed externally in mid-flight.
      if (!locked) {
        _updateTargetSize(_isHorizontal ? e.movement.y : e.movement.x);
  