anchor.diff:          if (chartSize == null) {
             return;
           }
  +        final PieTouchResponse response =
  +            _touchHandler?.handleTouch(FlLongPressStart(d.localPosition), chartSize);
  +        if (_canHandleTouch(response, touchData)) {
  +          touchData.touchCallback(response);
  +        }
  +      },
  +      onLongPressEnd: (d) {
  +        final Size chartSize = _getChartSize();
  +        if (chartSize == null) {
  +          return;
  +        }
  +
  +        final PieTouchResponse response =
  +            _touchHandler?.handleTouch(FlLongPressEnd(d.localPosition), chartSize);
  +        if (_canHandleTouch(response, touchData)) {
  +          touchData.touchCallback(response);
  +        }
  +      },
  +      onLongPressMoveUpdate: (d) {
  +        final Size chartSize = _getChartSize();
  +        if (chartSize == null) {
  +          return;
  +        }
  +
  +        final PieTouchResponse response =
  +            _touchHandler?.handleTouch(FlLongPressMoveUpdate(d.localPosition), chartSize);
  +        if (_canHandleTouch(response, touchData)) {
  +          touchData.touchCallback(response);
  +        }
  +      },
  +      onPanCancel: () {
  +        final Size chartSize = _getChartSize();
  +        if (chartSize == null) {
  +          return;
  +        }
  +
           final PieTouchResponse response = _touchHandler?.handleTouch(
  -            FlLongPressStart(d.localPosition), chartSize);
  -        if (_canHandleTouch(response, touchData)) {
  -          touchData.touchCallback(response);
  -        }
  -      },
  -      onLongPressEnd: (d) {
  -        final Size chartSize = _getChartSize();
  -        if (chartSize == null) {
  -          return;
  -        }
  -
  -        final PieTouchResponse response = _touchHandler?.handleTouch(
  -            FlLongPressEnd(d.localPosition), chartSize);
  -        if (_canHandleTouch(response, touchData)) {
  -          touchData.touchCallback(response);
  -        }
  -      },
  -      onLongPressMoveUpdate: (d) {
  -        final Size chartSize = _getChartSize();
  -        if (chartSize == null) {
  -          return;
  -        }
  -
  -        final PieTouchResponse response = _touchHandler?.handleTouch(
  -            FlLongPressMoveUpdate(d.localPosition), chartSize);
  -        if (_canHandleTouch(response, touchData)) {
  -          touchData.touchCallback(response);
  -        }
  -      },
  -      onPanCancel: () {
  -        final Size chartSize = _getChartSize();
  -        if (chartSize == null) {
  -          return;
  -        }
  -
  -        final PieTouchResponse response = _touchHandler?.handleTouch(
  -            FlPanEnd(Offset.zero, const Velocity(pixelsPerSecond: Offset.zero)),
  -            chartSize);
  +            FlPanEnd(Offset.zero, const Velocity(pixelsPerSecond: Offset.zero)), chartSize);
           if (_canHandleTouch(response, touchData)) {
             touchData.touchCallback(response);
           }
  
positive.code:   }
  
    bool _canHandleTouch(PieTouchResponse response, PieTouchData touchData) {
      return response != null &&
          touchData != null &&
          touchData.touchCallback != null;
    }
  
    Size _getChartSize() {
      final RenderBox containerRenderBox =
          _chartKey.currentContext?.findRenderObject();
      if (containerRenderBox != null && containerRenderBox.hasSize) {
        return containerRenderBox.size;
      }
  
negative.code:           return;
          }
  
          final PieTouchResponse response =
              _touchHandler?.handleTouch(FlPanEnd(Offset.zero, details.velocity), chartSize);
          if (_canHandleTouch(response, touchData)) {
            touchData.touchCallback(response);
          }
  