hitTestOnlyThumbInteractive method

bool hitTestOnlyThumbInteractive(
  1. Offset position,
  2. PointerDeviceKind kind
)

Same as hitTestInteractive, but excludes the track portion of the scrollbar. Used to evaluate interactions with only the scrollbar thumb.

Implementation

bool hitTestOnlyThumbInteractive(Offset position, PointerDeviceKind kind) {
  if (_thumbRect == null) {
    return false;
  }
  if (ignorePointer) {
    return false;
  }
  // The thumb is not able to be hit when transparent.
  if (fadeoutOpacityAnimation.value == 0.0) {
    return false;
  }

  if (!_lastMetricsAreScrollable) {
    return false;
  }

  switch (kind) {
    case PointerDeviceKind.touch:
    case PointerDeviceKind.trackpad:
      final Rect touchThumbRect = _thumbRect!.expandToInclude(
        Rect.fromCircle(center: _thumbRect!.center, radius: _kMinInteractiveSize / 2),
      );
      return touchThumbRect.contains(position);
    case PointerDeviceKind.mouse:
    case PointerDeviceKind.stylus:
    case PointerDeviceKind.invertedStylus:
    case PointerDeviceKind.unknown:
      return _thumbRect!.contains(position);
  }
}