anchor.diff:    void dragStart(MouseEvent e) {
       update();
       classes.add('active');
  -    _size = getTargetDimension();
  +    _isDragged = true;
     }
   
     void drag(MouseEvent e) {
  -    if (!locked) {
  -      final delta = _horizontal ? e.movement.y : e.movement.x;
  -      setTargetDimension(_size + (_isNext ? -delta : delta));
  +    if (_isDragged && !locked) {
  +      final int delta = _horizontal ? e.movement.y : e.movement.x;
  +      if (delta != null) {
  +        setTargetDimension(getTargetDimension() + (_isNext ? -delta : delta));
  +      }
       }
     }
   
     void dragEnd(MouseEvent e) {
       classes.remove('active');
  +    _isDragged = false;
     }
   }
  
positive.code:   bool _isNext;
    bool _horizontal;
    int _dimension;
    int _size;
  
    SparkSplitter.created() : super.created() {
      onDragStart.listen(dragStart);
      onDrag.listen(drag);
      onDragEnd.listen(dragEnd);
  
      directionChanged();
    }
  
negative.code: 
    int getTargetDimension() {
      final style = _target.getComputedStyle();
      final dimStr = (_dimension == _DIM_HEIGHT) ? style.height : style.width;
      final dim = int.parse(dimStr.replaceFirst('px', ''));
      return dim;
    }
  
    void setTargetDimension(int dimension) {
  