handleMouseScroll method
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);
}