mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
fix erroneous pointerenter events firing when pointer leaves app bounds (#46024)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/46024 Changelog: [Internal] Reviewed By: javache Differential Revision: D61298649 fbshipit-source-id: 16ee8084fa31297ee12db26ee86254eed6da248f
This commit is contained in:
committed by
Facebook GitHub Bot
parent
f8aa7867f1
commit
abc322c708
+1
-8
@@ -294,14 +294,7 @@ public class JSPointerDispatcher {
|
||||
|
||||
PointerEventState eventState = createEventState(activePointerId, motionEvent);
|
||||
|
||||
// We've empirically determined that when we get a ACTION_HOVER_EXIT from the root view on the
|
||||
// `onInterceptHoverEvent`, this means we've exited the root view.
|
||||
// This logic may be wrong but reasoning about the dispatch sequence for HOVER_ENTER/HOVER_EXIT
|
||||
// doesn't follow the capture/bubbling sequence like other MotionEvents. See:
|
||||
// https://developer.android.com/reference/android/view/MotionEvent#ACTION_HOVER_ENTER
|
||||
// https://suragch.medium.com/how-touch-events-are-delivered-in-android-eee3b607b038
|
||||
boolean isExitFromRoot =
|
||||
isCapture && motionEvent.getActionMasked() == MotionEvent.ACTION_HOVER_EXIT;
|
||||
boolean isExitFromRoot = motionEvent.getActionMasked() == MotionEvent.ACTION_HOVER_EXIT;
|
||||
|
||||
// Calculate the targetTag, with special handling for when we exit the root view. In that case,
|
||||
// we use the root viewId of the last event
|
||||
|
||||
Reference in New Issue
Block a user