updateDrag method
void
updateDrag(
- Offset globalPosition
)
Implementation
void updateDrag(Offset globalPosition) {
_lastOffset = globalPosition - dragStartPoint!;
_entry?.markNeedsBuild();
//TODO norbert it's here :)
if (onMove != null) onMove!(globalPosition);
final HitTestResult result = new HitTestResult();
WidgetsBinding.instance.hitTest(result, globalPosition + feedbackOffset!);
final List<_MyDragTargetState<T>> targets =
_getMyDragTargets(result.path.toList()).toList();
bool listsMatch = false;
if (targets.length >= _enteredTargets.length &&
_enteredTargets.isNotEmpty) {
listsMatch = true;
final Iterator<_MyDragTargetState<T>> iterator = targets.iterator;
for (int i = 0; i < _enteredTargets.length; i += 1) {
iterator.moveNext();
if (iterator.current != _enteredTargets[i]) {
listsMatch = false;
break;
}
}
}
// If everything's the same, bail early.
if (listsMatch) return;
// Leave old targets.
_leaveAllEntered();
// Enter new targets.
final _MyDragTargetState<T>? newTarget =
targets.where((_MyDragTargetState<T> target) {
_enteredTargets.add(target);
return target.didEnter(this);
}).first;
_activeTarget = newTarget;
}