From 788a823b9635bacf2c133323b9c20de5523269d8 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 19 Dec 2025 16:47:51 +0000 Subject: [PATCH 1/4] Release v2.30.0 --- packages/react-native-gesture-handler/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native-gesture-handler/package.json b/packages/react-native-gesture-handler/package.json index 1c09de704c..d21d2d030a 100644 --- a/packages/react-native-gesture-handler/package.json +++ b/packages/react-native-gesture-handler/package.json @@ -1,6 +1,6 @@ { "name": "react-native-gesture-handler", - "version": "2.29.0", + "version": "2.30.0", "description": "Declarative API exposing native platform touch and gesture system to React Native", "scripts": { "test": "jest", From 2117a1caaf93f69721560c8993507859534c17fd Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Fri, 27 Mar 2026 11:27:10 +0100 Subject: [PATCH 2/4] [iOS] Handle `FullWindowOverlay` as the native root (#4039) ## Description Current logic dedicated to handling `RNRootViewGestureRecognizer` on iOS looks only for RN's native roots. When gestures are used inside Screens' `FullWindowOverlay`, the logic doesn't do anything, but the overlay has its own [`RCTSurfaceTouchHandler`](https://github.com/software-mansion/react-native-screens/blob/be64b6d9a17c3a4647806f252e075b96b9f690cc/ios/RNSFullWindowOverlay.mm#L158). This PR updates the traversal logic so it handles `RNSFullWindowOverlayContainer` the same way as `RCTSurfaceView`. ## Test plan I wasn't able to reproduce the problem, but in theory, it's possible that without this change, recognizers from RNGH and RCTSurfaceTouchHandler could run simultaneously, since this path never ran: https://github.com/software-mansion/react-native-gesture-handler/blob/5587435679eabe3f8690f077ba7c2ecc3e354a14/packages/react-native-gesture-handler/apple/RNRootViewGestureRecognizer.m#L55-L63 --- .../apple/RNGestureHandlerManager.mm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-native-gesture-handler/apple/RNGestureHandlerManager.mm b/packages/react-native-gesture-handler/apple/RNGestureHandlerManager.mm index 7c4821410a..d0b59b9ee5 100644 --- a/packages/react-native-gesture-handler/apple/RNGestureHandlerManager.mm +++ b/packages/react-native-gesture-handler/apple/RNGestureHandlerManager.mm @@ -244,10 +244,14 @@ - (void)registerViewWithGestureRecognizerAttachedIfNeeded:(RNGHUIView *)childVie RNGHUIView *touchHandlerView = childView; #if !TARGET_OS_OSX + Class fullWindowOverlayContainerClass = NSClassFromString(@"RNSFullWindowOverlayContainer"); + if ([[childView reactViewController] isKindOfClass:[RCTFabricModalHostViewController class]]) { touchHandlerView = [childView reactViewController].view; } else { - while (touchHandlerView != nil && ![touchHandlerView isKindOfClass:[RCTSurfaceView class]]) { + while ( + touchHandlerView != nil && ![touchHandlerView isKindOfClass:[RCTSurfaceView class]] && + (fullWindowOverlayContainerClass == nil || ![touchHandlerView isKindOfClass:fullWindowOverlayContainerClass])) { touchHandlerView = touchHandlerView.superview; } } From 8c1b72d47f6a46b09bbea0524d79e9b1b7e4570a Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 27 Mar 2026 10:37:24 +0000 Subject: [PATCH 3/4] Release v2.30.1 --- packages/react-native-gesture-handler/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native-gesture-handler/package.json b/packages/react-native-gesture-handler/package.json index d21d2d030a..a171342c8d 100644 --- a/packages/react-native-gesture-handler/package.json +++ b/packages/react-native-gesture-handler/package.json @@ -1,6 +1,6 @@ { "name": "react-native-gesture-handler", - "version": "2.30.0", + "version": "2.30.1", "description": "Declarative API exposing native platform touch and gesture system to React Native", "scripts": { "test": "jest", From dc3ad3894a525f4f3099872594368584d33ad2c1 Mon Sep 17 00:00:00 2001 From: Christian Bernier Date: Fri, 27 Mar 2026 15:54:58 -0400 Subject: [PATCH 4/4] fix(android): compile RNGestureHandlerModule with Kotlin 2.3 Avoid shadowing between the local `rootViewTag` and the synthetic Kotlin property on `ReactRootView` by using an explicit receiver and `getRootViewTag()`. Fixes compilation with Kotlin 2.3.x toolchains (e.g. alongside Stripe and other SDKs built with Kotlin 2.3 metadata). Made-with: Cursor --- .../swmansion/gesturehandler/react/RNGestureHandlerModule.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt b/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt index e149fa49fc..6c4c086905 100644 --- a/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +++ b/packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt @@ -170,7 +170,8 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) : } synchronized(roots) { return roots.firstOrNull { - it.rootView is ReactRootView && it.rootView.rootViewTag == rootViewTag + val rv = it.rootView + rv is ReactRootView && rv.getRootViewTag() == rootViewTag } } }