handleMouseScroll method

void handleMouseScroll(
  1. double delta,
  2. double scrollSpeed
)

Implementation

void handleMouseScroll(
  double delta,
  double scrollSpeed,
) {
  if (isRecoilScroll) {
    return;
  }

  if (currentScrollPhysics != widgetScrollPhysics) {
    currentScrollPhysics = widgetScrollPhysics;
    notifyListeners();
  }
  final double scrollDelta = delta;
  final bool needBlocking;
  final bool isEdge = checkOffsetAtEdge(scrollDelta, clientController) != 0;
  if (widgetScrollPhysics is BlockedScrollPhysics) {
    needBlocking = true;
  } else {
    needBlocking = isEdge;
  }

  if (pointKey == silkyScrollMousePointerManager.reserveKey) {
    if (isOnSilkyScrolling == false) {
      if (needBlocking) {
        silkyScrollMousePointerManager.reservingKey(pointKey);
        return;
      }
      silkyScrollMousePointerManager.reserveKey = null;
      silkyScrollMousePointerManager.enteredKey(pointKey);
    }
  }
  if (isOnSilkyScrolling == false) {
    if (needBlocking) {
      silkyScrollMousePointerManager.reservingKey(pointKey);
      return;
    }
  }

  if (silkyScrollMousePointerManager.keyStack.isNotEmpty) {
    if (pointKey != silkyScrollMousePointerManager.keyStack.last) {
      return;
    }
  }

  animateToScroll(scrollDelta, scrollSpeed);
}