diff --git a/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt b/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt index 7e8b3d6f66..95a10ba8f3 100644 --- a/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +++ b/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt @@ -492,7 +492,7 @@ class GestureHandlerOrchestrator( top + view.height > parent.height } - private fun extractAncestorHandlers(view: View, coords: FloatArray, pointerId: Int): Boolean { + private fun extractAncestorHandlers(view: View, coords: FloatArray, pointerId: Int, event: MotionEvent): Boolean { var found = false var parent = view.parent @@ -509,6 +509,10 @@ class GestureHandlerOrchestrator( handlerRegistry.getHandlersForView(parent)?.let { synchronized(it) { for (handler in it) { + if (shouldHandlerSkipHoverEvents(handler, event)) { + continue + } + if (handler.isEnabled && handler.isWithinBounds(view, coords[0], coords[1])) { found = true recordHandlerIfNotPresent(handler, parentViewGroup) @@ -568,7 +572,7 @@ class GestureHandlerOrchestrator( if (coords[0] in 0f..view.width.toFloat() && coords[1] in 0f..view.height.toFloat() && isViewOverflowingParent(view) && - extractAncestorHandlers(view, coords, pointerId) + extractAncestorHandlers(view, coords, pointerId, event) ) { found = true }