anchor.diff:      if (_activeCardWidth == null || _activeCardIndex < 0)
         return;
   
  -    if (_activeCardAnchorX == null)
  -      _activeCardAnchorX = event.x - event.dx;
  -
  +    _activeCardDragX += event.dx;
       setState(() {
  -      double eventOffsetX = event.x - _activeCardAnchorX;
         if (!_activeCardAnimation.isAnimating)
  -        _activeCardAnimation.progress = eventOffsetX / (_activeCardWidth * _kDismissCardThreshold);
  +        _activeCardAnimation.progress = _activeCardDragX.abs() / (_activeCardWidth * _kDismissCardThreshold);
       });
     }
   
  
positive.code:       color: color
      );
  
      if (index == _activeCardIndex && _activeCardOffset > 0.0) {
        Matrix4 transform = new Matrix4.identity();
        transform.translate(_activeCardOffset, 0.0);
        card = new Transform(child: card, transform: transform);
        if (_activeCardAnimation != null)
          card = new Opacity(child: card, opacity: _activeCardOpacity);
      }
  
      return new Listener(
        child: card,
        onPointerDown: (event) { _handlePointerDown(event, index); }
      );
    }
  
  
negative.code:     setState(() {
        _activeCardIndex = cardIndex;
        _activeCardDragUnderway = true;
        _activeCardDragX = 0.0;
        _activeCardAnimation.progress = 0.0;
      });
    }
  