|
|
|
|
|
|
MouseDetectorAnnotationFinder annotationFinder |
|
|
|
|
|
|
|
) { |
|
|
|
D.assert(_router != null); |
|
|
|
D.assert(router != null); |
|
|
|
D.assert(annotationFinder != null); |
|
|
|
_router = router; |
|
|
|
router.addGlobalRoute(_handleEvent); |
|
|
|
|
|
|
if (Event is PointerSignalEvent) |
|
|
|
return; |
|
|
|
int device = Event.device; |
|
|
|
_MouseState existingState = _mouseStates[device]; |
|
|
|
_MouseState existingState = _mouseStates.getOrDefault(device); |
|
|
|
if (!_shouldMarkStateDirty(existingState, Event)) |
|
|
|
return; |
|
|
|
PointerEvent previousEvent = existingState?.latestEvent; |
|
|
|
|
|
|
|
|
|
|
_MouseState targetState = null; |
|
|
|
if (targetEvent != null) { |
|
|
|
targetState = _mouseStates[targetEvent.device]; |
|
|
|
targetState = _mouseStates.getOrDefault(targetEvent.device); |
|
|
|
if (targetState == null) { |
|
|
|
targetState = new _MouseState(initialEvent: targetEvent); |
|
|
|
_mouseStates[targetState.device] = targetState; |
|
|
|