anchor.diff:        color: color
       );
   
  -    if (index == _activeCardIndex && _activeCardOffset > 0.0) {
  +    // TODO(hansmuller) The code below changes the card's widget tree when
  +    // the user starts dragging it. Currently this causes Sky to drop the
  +    // rest of the pointer gesture, see https://github.com/domokit/mojo/issues/312.
  +    // As a workaround, always create the Transform and Opacity nodes.
  +    /*
  +    if (index == _activeCardIndex) {
         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);
       }
  +    */
  +    Matrix4 transform = new Matrix4.identity();
  +    double opacity = 1.0;
  +    if (index == _activeCardIndex) {
  +      transform.translate(_activeCardOffset, 0.0);
  +      opacity = _activeCardOpacity;
  +    }
  +    card = new Transform(
  +      child: new Opacity(child: card, opacity: opacity),
  +      transform: transform);
   
       return new Listener(
         child: card,
  -      onPointerDown: (event) { _handlePointerDown(event, index); }
  +      onPointerDown: (event) { _handlePointerDown(event, index); },
  +      onPointerMove: _handlePointerMove,
  +      onPointerUp: _handlePointerUpOrCancel,
  +      onPointerCancel: _handlePointerUpOrCancel,
  +      onGestureFlingStart: _handleFlingStart
       );
     }
   
  
positive.code:     if (_activeCardWidth == null || _activeCardIndex < 0)
        return;
  
      if (_activeCardAnchorX == null)
        _activeCardAnchorX = event.x - event.dx;
  
      setState(() {
        double eventOffsetX = event.x - _activeCardAnchorX;
        if (!_activeCardAnimation.isAnimating)
          _activeCardAnimation.progress = eventOffsetX / (_activeCardWidth * _kDismissCardThreshold);
      });
    }
  
  
negative.code:       ));
      }
  
      return new Container(
        child: new SizeObserver(child: new Block(items), callback: _handleSizeChanged),
        padding: const EdgeDims.symmetric(vertical: 12.0, horizontal: 8.0),
        decoration: new BoxDecoration(backgroundColor: Theme.of(this).primarySwatch[50])
      );
    }
  
  