react-native-gesture-handler 2.15.0 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RNGestureHandler.podspec +2 -23
- package/android/build.gradle +1 -1
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +2 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +9 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +3 -0
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +11 -6
- package/android/src/main/java/com/swmansion/gesturehandler/core/DiagonalDirections.kt +8 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +65 -24
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +86 -22
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +54 -29
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +3 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +5 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +5 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +7 -3
- package/android/src/main/java/com/swmansion/gesturehandler/core/Vector.kt +66 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +119 -19
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +2 -2
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +1 -4
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +8 -5
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +7 -4
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +1 -4
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +4 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/GestureHandlerEventDataBuilder.kt +3 -0
- package/android/src/main/jni/cpp-adapter.cpp +18 -22
- package/apple/Handlers/RNFlingHandler.m +5 -4
- package/apple/Handlers/RNForceTouchHandler.m +3 -1
- package/apple/Handlers/RNHoverHandler.m +2 -1
- package/apple/Handlers/RNLongPressHandler.m +8 -14
- package/apple/Handlers/RNManualHandler.m +1 -0
- package/apple/Handlers/RNNativeViewHandler.mm +9 -7
- package/apple/Handlers/RNPanHandler.m +7 -2
- package/apple/Handlers/RNPinchHandler.m +50 -26
- package/apple/Handlers/RNRotationHandler.m +43 -29
- package/apple/Handlers/RNTapHandler.m +6 -4
- package/apple/RNGestureHandler.h +9 -0
- package/apple/RNGestureHandler.m +41 -4
- package/apple/RNGestureHandlerEvents.h +18 -9
- package/apple/RNGestureHandlerEvents.m +29 -11
- package/apple/RNGestureHandlerManager.h +5 -0
- package/apple/RNGestureHandlerManager.mm +32 -6
- package/apple/RNGestureHandlerModule.h +5 -3
- package/apple/RNGestureHandlerModule.mm +33 -19
- package/apple/RNGestureHandlerPointerType.h +8 -0
- package/lib/commonjs/Directions.js +19 -6
- package/lib/commonjs/Directions.js.map +1 -1
- package/lib/commonjs/PointerType.js +16 -0
- package/lib/commonjs/PointerType.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.web.js +7 -61
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.android.js +17 -2
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.js +15 -2
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.web.js +15 -2
- package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +3 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +1 -0
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +19 -2
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +5 -0
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/customDirectEventTypes.js +14 -0
- package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -0
- package/lib/commonjs/handlers/customDirectEventTypes.web.js +11 -0
- package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -0
- package/lib/commonjs/handlers/gestureHandlerCommon.js +13 -2
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +10 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/index.js +11 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mocks.js +2 -0
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/commonjs/web/Gestures.js +66 -0
- package/lib/commonjs/web/Gestures.js.map +1 -0
- package/lib/commonjs/web/constants.js +3 -8
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +36 -12
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +10 -5
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/IGestureHandler.js +2 -0
- package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +5 -6
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js +1 -23
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/EventManager.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +117 -118
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +10 -5
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js +12 -3
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerEventManager.js +77 -27
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/TouchEventManager.js +29 -6
- package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/Vector.js +58 -0
- package/lib/commonjs/web/tools/Vector.js.map +1 -0
- package/lib/commonjs/web/utils.js +14 -0
- package/lib/commonjs/web/utils.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/Directions.js +16 -4
- package/lib/module/Directions.js.map +1 -1
- package/lib/module/PointerType.js +9 -0
- package/lib/module/PointerType.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.web.js +2 -39
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js +15 -2
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.js +15 -3
- package/lib/module/components/GestureHandlerRootView.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.web.js +15 -3
- package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/module/components/Swipeable.js +3 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +1 -0
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +19 -2
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/handlers/createHandler.js +5 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/customDirectEventTypes.js +3 -0
- package/lib/module/handlers/customDirectEventTypes.js.map +1 -0
- package/lib/module/handlers/customDirectEventTypes.web.js +5 -0
- package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -0
- package/lib/module/handlers/gestureHandlerCommon.js +11 -1
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +10 -0
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/mocks.js +2 -0
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/module/web/Gestures.js +39 -0
- package/lib/module/web/Gestures.js.map +1 -0
- package/lib/module/web/constants.js +1 -6
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +34 -12
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +7 -4
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/IGestureHandler.js +2 -0
- package/lib/module/web/handlers/IGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js +5 -6
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js +0 -20
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/EventManager.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +116 -117
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +9 -4
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js +9 -3
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web/tools/NodeManager.js.map +1 -1
- package/lib/module/web/tools/PointerEventManager.js +75 -27
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/TouchEventManager.js +28 -6
- package/lib/module/web/tools/TouchEventManager.js.map +1 -1
- package/lib/module/web/tools/Vector.js +47 -0
- package/lib/module/web/tools/Vector.js.map +1 -0
- package/lib/module/web/utils.js +4 -0
- package/lib/module/web/utils.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/typescript/Directions.d.ts +7 -0
- package/lib/typescript/PointerType.d.ts +6 -0
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +4 -39
- package/lib/typescript/components/DrawerLayout.d.ts +1 -2
- package/lib/typescript/components/GestureHandlerRootView.android.d.ts +1 -1
- package/lib/typescript/components/GestureHandlerRootView.d.ts +1 -1
- package/lib/typescript/components/GestureHandlerRootView.web.d.ts +1 -1
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -1
- package/lib/typescript/getShadowNodeFromRef.d.ts +1 -1
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/customDirectEventTypes.d.ts +1 -0
- package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +2 -0
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +13 -2
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +1 -2
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/mocks.d.ts +1 -0
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +6 -6
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +4 -1
- package/lib/typescript/web/Gestures.d.ts +36 -0
- package/lib/typescript/web/constants.d.ts +1 -6
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +3 -3
- package/lib/typescript/web/handlers/GestureHandler.d.ts +12 -9
- package/lib/typescript/web/handlers/IGestureHandler.d.ts +38 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web/interfaces.d.ts +9 -16
- package/lib/typescript/web/tools/EventManager.d.ts +15 -12
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +3 -4
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +7 -5
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -3
- package/lib/typescript/web/tools/InteractionManager.d.ts +6 -6
- package/lib/typescript/web/tools/NodeManager.d.ts +4 -3
- package/lib/typescript/web/tools/PointerEventManager.d.ts +11 -2
- package/lib/typescript/web/tools/TouchEventManager.d.ts +6 -1
- package/lib/typescript/web/tools/Vector.d.ts +15 -0
- package/lib/typescript/web/utils.d.ts +6 -4
- package/lib/typescript/web_hammer/NodeManager.d.ts +1 -1
- package/package.json +2 -1
- package/src/Directions.ts +21 -4
- package/src/PointerType.ts +6 -0
- package/src/RNGestureHandlerModule.web.ts +3 -44
- package/src/components/DrawerLayout.tsx +1 -1
- package/src/components/GestureHandlerRootView.android.tsx +13 -5
- package/src/components/GestureHandlerRootView.tsx +10 -5
- package/src/components/GestureHandlerRootView.web.tsx +10 -5
- package/src/components/Swipeable.tsx +2 -0
- package/src/components/touchables/GenericTouchable.tsx +3 -0
- package/src/getShadowNodeFromRef.ts +28 -6
- package/src/handlers/createHandler.tsx +14 -2
- package/src/handlers/customDirectEventTypes.ts +2 -0
- package/src/handlers/customDirectEventTypes.web.ts +5 -0
- package/src/handlers/gestureHandlerCommon.ts +30 -1
- package/src/handlers/gestures/GestureDetector.tsx +15 -0
- package/src/handlers/gestures/gesture.ts +1 -1
- package/src/index.ts +2 -1
- package/src/mocks.ts +2 -0
- package/src/specs/NativeRNGestureHandlerModule.ts +8 -8
- package/src/specs/RNGestureHandlerButtonNativeComponent.ts +4 -0
- package/src/web/Gestures.ts +41 -0
- package/src/web/constants.ts +1 -7
- package/src/web/handlers/FlingGestureHandler.ts +54 -24
- package/src/web/handlers/GestureHandler.ts +17 -12
- package/src/web/handlers/IGestureHandler.ts +50 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +5 -6
- package/src/web/interfaces.ts +15 -17
- package/src/web/tools/EventManager.ts +16 -14
- package/src/web/tools/GestureHandlerDelegate.ts +3 -4
- package/src/web/tools/GestureHandlerOrchestrator.ts +162 -147
- package/src/web/tools/GestureHandlerWebDelegate.ts +14 -9
- package/src/web/tools/InteractionManager.ts +18 -12
- package/src/web/tools/NodeManager.ts +4 -3
- package/src/web/tools/PointerEventManager.ts +189 -154
- package/src/web/tools/TouchEventManager.ts +128 -120
- package/src/web/tools/Vector.ts +60 -0
- package/src/web/utils.ts +16 -4
- package/src/web_hammer/NodeManager.ts +1 -1
|
@@ -14,11 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
#import <React/RCTConvert.h>
|
|
16
16
|
|
|
17
|
-
#import <mach/mach_time.h>
|
|
18
|
-
|
|
19
17
|
@interface RNBetterLongPressGestureRecognizer : UILongPressGestureRecognizer {
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
CFTimeInterval startTime;
|
|
19
|
+
CFTimeInterval previousTime;
|
|
22
20
|
}
|
|
23
21
|
|
|
24
22
|
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
|
@@ -42,7 +40,7 @@
|
|
|
42
40
|
|
|
43
41
|
- (void)handleGesture:(UIGestureRecognizer *)recognizer
|
|
44
42
|
{
|
|
45
|
-
previousTime =
|
|
43
|
+
previousTime = CACurrentMediaTime();
|
|
46
44
|
[_gestureHandler handleGesture:recognizer];
|
|
47
45
|
}
|
|
48
46
|
|
|
@@ -59,11 +57,12 @@
|
|
|
59
57
|
|
|
60
58
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
61
59
|
{
|
|
60
|
+
[_gestureHandler setCurrentPointerType:event];
|
|
62
61
|
[super touchesBegan:touches withEvent:event];
|
|
63
62
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
64
63
|
|
|
65
64
|
_initPosition = [self locationInView:self.view];
|
|
66
|
-
startTime =
|
|
65
|
+
startTime = CACurrentMediaTime();
|
|
67
66
|
[_gestureHandler reset];
|
|
68
67
|
[self triggerAction];
|
|
69
68
|
}
|
|
@@ -108,13 +107,7 @@
|
|
|
108
107
|
|
|
109
108
|
- (NSUInteger)getDuration
|
|
110
109
|
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if (sTimebaseInfo.denom == 0) {
|
|
114
|
-
mach_timebase_info(&sTimebaseInfo);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return (NSUInteger)(((previousTime - startTime) * sTimebaseInfo.numer / (sTimebaseInfo.denom * 1000000)));
|
|
110
|
+
return (previousTime - startTime) * 1000;
|
|
118
111
|
}
|
|
119
112
|
|
|
120
113
|
@end
|
|
@@ -181,7 +174,8 @@
|
|
|
181
174
|
return [RNGestureHandlerEventExtraData forPosition:[recognizer locationInView:recognizer.view]
|
|
182
175
|
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
|
183
176
|
withNumberOfTouches:recognizer.numberOfTouches
|
|
184
|
-
withDuration:[(RNBetterLongPressGestureRecognizer *)recognizer getDuration]
|
|
177
|
+
withDuration:[(RNBetterLongPressGestureRecognizer *)recognizer getDuration]
|
|
178
|
+
withPointerType:_pointerType];
|
|
185
179
|
}
|
|
186
180
|
@end
|
|
187
181
|
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
26
26
|
{
|
|
27
|
+
[_gestureHandler setCurrentPointerType:event];
|
|
27
28
|
[super touchesBegan:touches withEvent:event];
|
|
28
29
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
29
30
|
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
41
41
|
{
|
|
42
|
+
[_gestureHandler setCurrentPointerType:event];
|
|
42
43
|
[_gestureHandler.pointerTracker touchesBegan:touches withEvent:event];
|
|
43
44
|
}
|
|
44
45
|
|
|
@@ -133,6 +134,7 @@
|
|
|
133
134
|
|
|
134
135
|
- (void)handleTouchDown:(UIView *)sender forEvent:(UIEvent *)event
|
|
135
136
|
{
|
|
137
|
+
[self setCurrentPointerType:event];
|
|
136
138
|
[self reset];
|
|
137
139
|
|
|
138
140
|
if (_disallowInterruption) {
|
|
@@ -148,21 +150,21 @@
|
|
|
148
150
|
|
|
149
151
|
[self sendEventsInState:RNGestureHandlerStateActive
|
|
150
152
|
forViewWithTag:sender.reactTag
|
|
151
|
-
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
|
|
153
|
+
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES withPointerType:_pointerType]];
|
|
152
154
|
}
|
|
153
155
|
|
|
154
156
|
- (void)handleTouchUpOutside:(UIView *)sender forEvent:(UIEvent *)event
|
|
155
157
|
{
|
|
156
158
|
[self sendEventsInState:RNGestureHandlerStateEnd
|
|
157
159
|
forViewWithTag:sender.reactTag
|
|
158
|
-
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
|
|
160
|
+
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
|
|
159
161
|
}
|
|
160
162
|
|
|
161
163
|
- (void)handleTouchUpInside:(UIView *)sender forEvent:(UIEvent *)event
|
|
162
164
|
{
|
|
163
165
|
[self sendEventsInState:RNGestureHandlerStateEnd
|
|
164
166
|
forViewWithTag:sender.reactTag
|
|
165
|
-
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
|
|
167
|
+
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES withPointerType:_pointerType]];
|
|
166
168
|
}
|
|
167
169
|
|
|
168
170
|
- (void)handleDragExit:(UIView *)sender forEvent:(UIEvent *)event
|
|
@@ -173,11 +175,11 @@
|
|
|
173
175
|
[control cancelTrackingWithEvent:event];
|
|
174
176
|
[self sendEventsInState:RNGestureHandlerStateEnd
|
|
175
177
|
forViewWithTag:sender.reactTag
|
|
176
|
-
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
|
|
178
|
+
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
|
|
177
179
|
} else {
|
|
178
180
|
[self sendEventsInState:RNGestureHandlerStateActive
|
|
179
181
|
forViewWithTag:sender.reactTag
|
|
180
|
-
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
|
|
182
|
+
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
|
|
181
183
|
}
|
|
182
184
|
}
|
|
183
185
|
|
|
@@ -185,14 +187,14 @@
|
|
|
185
187
|
{
|
|
186
188
|
[self sendEventsInState:RNGestureHandlerStateActive
|
|
187
189
|
forViewWithTag:sender.reactTag
|
|
188
|
-
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES]];
|
|
190
|
+
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:YES withPointerType:_pointerType]];
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
- (void)handleTouchCancel:(UIView *)sender forEvent:(UIEvent *)event
|
|
192
194
|
{
|
|
193
195
|
[self sendEventsInState:RNGestureHandlerStateCancelled
|
|
194
196
|
forViewWithTag:sender.reactTag
|
|
195
|
-
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO]];
|
|
197
|
+
withExtraData:[RNGestureHandlerEventExtraData forPointerInside:NO withPointerType:_pointerType]];
|
|
196
198
|
}
|
|
197
199
|
|
|
198
200
|
@end
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#import "RNPanHandler.h"
|
|
10
10
|
|
|
11
11
|
#if TARGET_OS_OSX
|
|
12
|
+
|
|
12
13
|
@interface RNBetterPanGestureRecognizer : NSPanGestureRecognizer
|
|
13
14
|
#else
|
|
14
15
|
#import <UIKit/UIGestureRecognizerSubclass.h>
|
|
@@ -166,6 +167,7 @@
|
|
|
166
167
|
|
|
167
168
|
- (void)mouseDown:(NSEvent *)event
|
|
168
169
|
{
|
|
170
|
+
[_gestureHandler setCurrentPointerTypeToMouse];
|
|
169
171
|
// super call was moved to interactionsBegan method to keep the
|
|
170
172
|
// original order of calls
|
|
171
173
|
[self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
|
|
@@ -187,6 +189,7 @@
|
|
|
187
189
|
|
|
188
190
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
189
191
|
{
|
|
192
|
+
[_gestureHandler setCurrentPointerType:event];
|
|
190
193
|
// super call was moved to interactionsBegan method to keep the
|
|
191
194
|
// original order of calls
|
|
192
195
|
[self interactionsBegan:touches withEvent:event];
|
|
@@ -400,7 +403,8 @@
|
|
|
400
403
|
withAbsolutePosition:[recognizer locationInView:recognizer.view.window.contentView]
|
|
401
404
|
withTranslation:[recognizer translationInView:recognizer.view.window.contentView]
|
|
402
405
|
withVelocity:[recognizer velocityInView:recognizer.view.window.contentView]
|
|
403
|
-
withNumberOfTouches:1
|
|
406
|
+
withNumberOfTouches:1
|
|
407
|
+
withPointerType:RNGestureHandlerMouse];
|
|
404
408
|
}
|
|
405
409
|
#else
|
|
406
410
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIPanGestureRecognizer *)recognizer
|
|
@@ -409,7 +413,8 @@
|
|
|
409
413
|
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
|
410
414
|
withTranslation:[recognizer translationInView:recognizer.view.window]
|
|
411
415
|
withVelocity:[recognizer velocityInView:recognizer.view.window]
|
|
412
|
-
withNumberOfTouches:recognizer.numberOfTouches
|
|
416
|
+
withNumberOfTouches:recognizer.numberOfTouches
|
|
417
|
+
withPointerType:_pointerType];
|
|
413
418
|
}
|
|
414
419
|
#endif
|
|
415
420
|
|
|
@@ -13,7 +13,12 @@
|
|
|
13
13
|
#if !TARGET_OS_TV
|
|
14
14
|
|
|
15
15
|
#if TARGET_OS_OSX
|
|
16
|
-
@interface RNBetterPinchRecognizer : NSMagnificationGestureRecognizer
|
|
16
|
+
@interface RNBetterPinchRecognizer : NSMagnificationGestureRecognizer {
|
|
17
|
+
CGFloat prevMagnification;
|
|
18
|
+
NSTimeInterval prevTime;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@property (nonatomic, readonly) CGFloat velocity;
|
|
17
22
|
#else
|
|
18
23
|
@interface RNBetterPinchRecognizer : UIPinchGestureRecognizer
|
|
19
24
|
#endif
|
|
@@ -31,6 +36,10 @@
|
|
|
31
36
|
if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
|
|
32
37
|
_gestureHandler = gestureHandler;
|
|
33
38
|
}
|
|
39
|
+
#if TARGET_OS_OSX
|
|
40
|
+
prevMagnification = 0;
|
|
41
|
+
prevTime = 0;
|
|
42
|
+
#endif
|
|
34
43
|
return self;
|
|
35
44
|
}
|
|
36
45
|
|
|
@@ -67,32 +76,34 @@
|
|
|
67
76
|
}
|
|
68
77
|
|
|
69
78
|
#if TARGET_OS_OSX
|
|
70
|
-
- (void)
|
|
71
|
-
{
|
|
72
|
-
[super
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
- (void)magnifyWithEvent:(NSEvent *)event
|
|
80
|
+
{
|
|
81
|
+
[super magnifyWithEvent:event];
|
|
82
|
+
|
|
83
|
+
switch (self.state) {
|
|
84
|
+
case NSGestureRecognizerStateBegan:
|
|
85
|
+
[_gestureHandler setCurrentPointerTypeToMouse];
|
|
86
|
+
[self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
|
|
87
|
+
break;
|
|
88
|
+
case NSGestureRecognizerStateChanged:
|
|
89
|
+
[self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
|
|
90
|
+
break;
|
|
91
|
+
case NSGestureRecognizerStateEnded:
|
|
92
|
+
[self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
|
|
93
|
+
break;
|
|
94
|
+
case NSGestureRecognizerStateCancelled:
|
|
95
|
+
[self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
87
98
|
|
|
88
|
-
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
[self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
|
|
99
|
+
_velocity = (self.magnification - prevMagnification) / ((event.timestamp - prevTime) * 1000);
|
|
100
|
+
prevMagnification = self.magnification;
|
|
101
|
+
prevTime = event.timestamp;
|
|
92
102
|
}
|
|
93
103
|
#else
|
|
94
104
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
95
105
|
{
|
|
106
|
+
[_gestureHandler setCurrentPointerType:event];
|
|
96
107
|
[super touchesBegan:touches withEvent:event];
|
|
97
108
|
[self interactionsBegan:touches withEvent:event];
|
|
98
109
|
}
|
|
@@ -145,16 +156,29 @@
|
|
|
145
156
|
{
|
|
146
157
|
return [RNGestureHandlerEventExtraData forPinch:recognizer.magnification
|
|
147
158
|
withFocalPoint:[recognizer locationInView:recognizer.view]
|
|
148
|
-
withVelocity:
|
|
149
|
-
withNumberOfTouches:2
|
|
159
|
+
withVelocity:((RNBetterPinchRecognizer *)recognizer).velocity
|
|
160
|
+
withNumberOfTouches:2
|
|
161
|
+
withPointerType:RNGestureHandlerMouse];
|
|
150
162
|
}
|
|
151
163
|
#else
|
|
152
164
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIPinchGestureRecognizer *)recognizer
|
|
153
165
|
{
|
|
166
|
+
CGPoint accumulatedPoint = CGPointZero;
|
|
167
|
+
|
|
168
|
+
for (int i = 0; i < recognizer.numberOfTouches; i++) {
|
|
169
|
+
CGPoint location = [recognizer locationOfTouch:i inView:recognizer.view];
|
|
170
|
+
accumulatedPoint.x += location.x;
|
|
171
|
+
accumulatedPoint.y += location.y;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
CGPoint focalPoint =
|
|
175
|
+
CGPointMake(accumulatedPoint.x / recognizer.numberOfTouches, accumulatedPoint.y / recognizer.numberOfTouches);
|
|
176
|
+
|
|
154
177
|
return [RNGestureHandlerEventExtraData forPinch:recognizer.scale
|
|
155
|
-
withFocalPoint:
|
|
178
|
+
withFocalPoint:focalPoint
|
|
156
179
|
withVelocity:recognizer.velocity
|
|
157
|
-
withNumberOfTouches:recognizer.numberOfTouches
|
|
180
|
+
withNumberOfTouches:recognizer.numberOfTouches
|
|
181
|
+
withPointerType:_pointerType];
|
|
158
182
|
}
|
|
159
183
|
#endif
|
|
160
184
|
#endif // !TARGET_OS_TV
|
|
@@ -11,10 +11,16 @@
|
|
|
11
11
|
#if !TARGET_OS_TV
|
|
12
12
|
|
|
13
13
|
#if TARGET_OS_OSX
|
|
14
|
-
@interface RNBetterRotationRecognizer : NSRotationGestureRecognizer
|
|
14
|
+
@interface RNBetterRotationRecognizer : NSRotationGestureRecognizer {
|
|
15
|
+
CGFloat prevRotation;
|
|
16
|
+
NSTimeInterval prevTime;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@property (nonatomic, readonly) CGFloat velocity;
|
|
15
20
|
#else
|
|
16
21
|
@interface RNBetterRotationRecognizer : UIRotationGestureRecognizer
|
|
17
22
|
#endif
|
|
23
|
+
|
|
18
24
|
- (id)initWithGestureHandler:(RNGestureHandler *)gestureHandler;
|
|
19
25
|
|
|
20
26
|
@end
|
|
@@ -28,6 +34,10 @@
|
|
|
28
34
|
if ((self = [super initWithTarget:self action:@selector(handleGesture:)])) {
|
|
29
35
|
_gestureHandler = gestureHandler;
|
|
30
36
|
}
|
|
37
|
+
#if TARGET_OS_OSX
|
|
38
|
+
prevRotation = 0;
|
|
39
|
+
prevTime = 0;
|
|
40
|
+
#endif
|
|
31
41
|
return self;
|
|
32
42
|
}
|
|
33
43
|
|
|
@@ -60,52 +70,54 @@
|
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
#if TARGET_OS_OSX
|
|
63
|
-
- (void)
|
|
64
|
-
{
|
|
65
|
-
[super
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
73
|
+
- (void)rotateWithEvent:(NSEvent *)event
|
|
74
|
+
{
|
|
75
|
+
[super rotateWithEvent:event];
|
|
76
|
+
|
|
77
|
+
switch (self.state) {
|
|
78
|
+
case NSGestureRecognizerStateBegan:
|
|
79
|
+
[_gestureHandler setCurrentPointerTypeToMouse];
|
|
80
|
+
[self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
|
|
81
|
+
break;
|
|
82
|
+
case NSGestureRecognizerStateChanged:
|
|
83
|
+
[self interactionsMoved:[NSSet setWithObject:event] withEvent:event];
|
|
84
|
+
break;
|
|
85
|
+
case NSGestureRecognizerStateEnded:
|
|
86
|
+
[self interactionsEnded:[NSSet setWithObject:event] withEvent:event];
|
|
87
|
+
break;
|
|
88
|
+
case NSGestureRecognizerStateCancelled:
|
|
89
|
+
[self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
80
92
|
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
[self interactionsCancelled:[NSSet setWithObject:event] withEvent:event];
|
|
93
|
+
_velocity = (self.rotation - prevRotation) / ((event.timestamp - prevTime) * 1000);
|
|
94
|
+
prevRotation = self.rotation;
|
|
95
|
+
prevTime = event.timestamp;
|
|
85
96
|
}
|
|
86
97
|
#else
|
|
87
98
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
88
99
|
{
|
|
100
|
+
[_gestureHandler setCurrentPointerType:event];
|
|
89
101
|
[super touchesBegan:touches withEvent:event];
|
|
90
|
-
[self interactionsBegan:
|
|
102
|
+
[self interactionsBegan:touches withEvent:event];
|
|
91
103
|
}
|
|
92
104
|
|
|
93
105
|
- (void)touchesMoved:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
94
106
|
{
|
|
95
107
|
[super touchesMoved:touches withEvent:event];
|
|
96
|
-
[self interactionsMoved:
|
|
108
|
+
[self interactionsMoved:touches withEvent:event];
|
|
97
109
|
}
|
|
98
110
|
|
|
99
111
|
- (void)touchesEnded:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
100
112
|
{
|
|
101
113
|
[super touchesEnded:touches withEvent:event];
|
|
102
|
-
[self interactionsEnded:
|
|
114
|
+
[self interactionsEnded:touches withEvent:event];
|
|
103
115
|
}
|
|
104
116
|
|
|
105
117
|
- (void)touchesCancelled:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
106
118
|
{
|
|
107
119
|
[super touchesCancelled:touches withEvent:event];
|
|
108
|
-
[self interactionsCancelled:
|
|
120
|
+
[self interactionsCancelled:touches withEvent:event];
|
|
109
121
|
}
|
|
110
122
|
#endif
|
|
111
123
|
|
|
@@ -138,8 +150,9 @@
|
|
|
138
150
|
{
|
|
139
151
|
return [RNGestureHandlerEventExtraData forRotation:recognizer.rotation
|
|
140
152
|
withAnchorPoint:[recognizer locationInView:recognizer.view]
|
|
141
|
-
withVelocity:
|
|
142
|
-
withNumberOfTouches:2
|
|
153
|
+
withVelocity:((RNBetterRotationRecognizer *)recognizer).velocity
|
|
154
|
+
withNumberOfTouches:2
|
|
155
|
+
withPointerType:RNGestureHandlerMouse];
|
|
143
156
|
}
|
|
144
157
|
#else
|
|
145
158
|
- (RNGestureHandlerEventExtraData *)eventExtraData:(UIRotationGestureRecognizer *)recognizer
|
|
@@ -147,7 +160,8 @@
|
|
|
147
160
|
return [RNGestureHandlerEventExtraData forRotation:recognizer.rotation
|
|
148
161
|
withAnchorPoint:[recognizer locationInView:recognizer.view]
|
|
149
162
|
withVelocity:recognizer.velocity
|
|
150
|
-
withNumberOfTouches:recognizer.numberOfTouches
|
|
163
|
+
withNumberOfTouches:recognizer.numberOfTouches
|
|
164
|
+
withPointerType:_pointerType];
|
|
151
165
|
}
|
|
152
166
|
#endif
|
|
153
167
|
#endif // !TARGET_OS_TV
|
|
@@ -147,6 +147,7 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
|
147
147
|
#if TARGET_OS_OSX
|
|
148
148
|
- (void)mouseDown:(NSEvent *)event
|
|
149
149
|
{
|
|
150
|
+
[_gestureHandler setCurrentPointerTypeToMouse];
|
|
150
151
|
[super mouseDown:event];
|
|
151
152
|
[self interactionsBegan:[NSSet setWithObject:event] withEvent:event];
|
|
152
153
|
}
|
|
@@ -184,26 +185,27 @@ static const NSTimeInterval defaultMaxDuration = 0.5;
|
|
|
184
185
|
|
|
185
186
|
- (void)touchesBegan:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
186
187
|
{
|
|
188
|
+
[_gestureHandler setCurrentPointerType:event];
|
|
187
189
|
[super touchesBegan:touches withEvent:event];
|
|
188
|
-
[self interactionsBegan:
|
|
190
|
+
[self interactionsBegan:touches withEvent:event];
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
- (void)touchesMoved:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
192
194
|
{
|
|
193
195
|
[super touchesMoved:touches withEvent:event];
|
|
194
|
-
[self interactionsMoved:
|
|
196
|
+
[self interactionsMoved:touches withEvent:event];
|
|
195
197
|
}
|
|
196
198
|
|
|
197
199
|
- (void)touchesEnded:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
198
200
|
{
|
|
199
201
|
[super touchesEnded:touches withEvent:event];
|
|
200
|
-
[self interactionsEnded:
|
|
202
|
+
[self interactionsEnded:touches withEvent:event];
|
|
201
203
|
}
|
|
202
204
|
|
|
203
205
|
- (void)touchesCancelled:(NSSet<RNGHUITouch *> *)touches withEvent:(UIEvent *)event
|
|
204
206
|
{
|
|
205
207
|
[super touchesCancelled:touches withEvent:event];
|
|
206
|
-
[self interactionsCancelled:
|
|
208
|
+
[self interactionsCancelled:touches withEvent:event];
|
|
207
209
|
}
|
|
208
210
|
|
|
209
211
|
#endif
|
package/apple/RNGestureHandler.h
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
#import "RNGestureHandlerDirection.h"
|
|
4
4
|
#import "RNGestureHandlerEvents.h"
|
|
5
5
|
#import "RNGestureHandlerPointerTracker.h"
|
|
6
|
+
#import "RNGestureHandlerPointerType.h"
|
|
6
7
|
#import "RNGestureHandlerState.h"
|
|
7
8
|
|
|
8
9
|
#import <Foundation/Foundation.h>
|
|
@@ -53,6 +54,8 @@
|
|
|
53
54
|
UIGestureRecognizer *_recognizer;
|
|
54
55
|
@protected
|
|
55
56
|
RNGestureHandlerState _lastState;
|
|
57
|
+
@protected
|
|
58
|
+
NSInteger _pointerType;
|
|
56
59
|
}
|
|
57
60
|
|
|
58
61
|
+ (nullable RNGestureHandler *)findGestureHandlerByRecognizer:(nonnull UIGestureRecognizer *)recognizer;
|
|
@@ -87,4 +90,10 @@
|
|
|
87
90
|
- (void)sendEvent:(nonnull RNGestureHandlerStateChange *)event;
|
|
88
91
|
- (void)sendTouchEventInState:(RNGestureHandlerState)state forViewWithTag:(nonnull NSNumber *)reactTag;
|
|
89
92
|
|
|
93
|
+
#if !TARGET_OS_OSX
|
|
94
|
+
- (void)setCurrentPointerType:(nonnull UIEvent *)event;
|
|
95
|
+
#else
|
|
96
|
+
- (void)setCurrentPointerTypeToMouse;
|
|
97
|
+
#endif
|
|
98
|
+
|
|
90
99
|
@end
|
package/apple/RNGestureHandler.m
CHANGED
|
@@ -176,6 +176,38 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
|
|
|
176
176
|
self.recognizer.enabled = enabled;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
#if !TARGET_OS_OSX
|
|
180
|
+
- (void)setCurrentPointerType:(UIEvent *)event
|
|
181
|
+
{
|
|
182
|
+
UITouch *touch = [[event allTouches] anyObject];
|
|
183
|
+
|
|
184
|
+
switch (touch.type) {
|
|
185
|
+
case UITouchTypeDirect:
|
|
186
|
+
_pointerType = RNGestureHandlerTouch;
|
|
187
|
+
break;
|
|
188
|
+
case UITouchTypePencil:
|
|
189
|
+
_pointerType = RNGestureHandlerStylus;
|
|
190
|
+
break;
|
|
191
|
+
case UITouchTypeIndirectPointer:
|
|
192
|
+
_pointerType = RNGestureHandlerMouse;
|
|
193
|
+
break;
|
|
194
|
+
default:
|
|
195
|
+
_pointerType = RNGestureHandlerOtherPointer;
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
#else
|
|
200
|
+
- (void)setCurrentPointerTypeToMouse
|
|
201
|
+
{
|
|
202
|
+
_pointerType = RNGestureHandlerMouse;
|
|
203
|
+
}
|
|
204
|
+
#endif
|
|
205
|
+
|
|
206
|
+
- (UITouchType)getPointerType
|
|
207
|
+
{
|
|
208
|
+
return _pointerType;
|
|
209
|
+
}
|
|
210
|
+
|
|
179
211
|
- (void)bindToView:(RNGHUIView *)view
|
|
180
212
|
{
|
|
181
213
|
#if !TARGET_OS_OSX
|
|
@@ -200,11 +232,13 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
|
|
|
200
232
|
#if TARGET_OS_OSX
|
|
201
233
|
return [RNGestureHandlerEventExtraData forPosition:[recognizer locationInView:recognizer.view]
|
|
202
234
|
withAbsolutePosition:[recognizer locationInView:recognizer.view.window.contentView]
|
|
203
|
-
withNumberOfTouches:1
|
|
235
|
+
withNumberOfTouches:1
|
|
236
|
+
withPointerType:RNGestureHandlerMouse];
|
|
204
237
|
#else
|
|
205
238
|
return [RNGestureHandlerEventExtraData forPosition:[recognizer locationInView:recognizer.view]
|
|
206
239
|
withAbsolutePosition:[recognizer locationInView:recognizer.view.window]
|
|
207
|
-
withNumberOfTouches:recognizer.numberOfTouches
|
|
240
|
+
withNumberOfTouches:recognizer.numberOfTouches
|
|
241
|
+
withPointerType:_pointerType];
|
|
208
242
|
#endif
|
|
209
243
|
}
|
|
210
244
|
|
|
@@ -294,7 +328,8 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
|
|
|
294
328
|
id extraData = [RNGestureHandlerEventExtraData forEventType:_pointerTracker.eventType
|
|
295
329
|
withChangedPointers:_pointerTracker.changedPointersData
|
|
296
330
|
withAllPointers:_pointerTracker.allPointersData
|
|
297
|
-
withNumberOfTouches:_pointerTracker.trackedPointersCount
|
|
331
|
+
withNumberOfTouches:_pointerTracker.trackedPointersCount
|
|
332
|
+
withPointerType:_pointerType];
|
|
298
333
|
id event = [[RNGestureHandlerEvent alloc] initWithReactTag:reactTag
|
|
299
334
|
handlerTag:_tag
|
|
300
335
|
state:state
|
|
@@ -447,7 +482,9 @@ static NSHashTable<RNGestureHandler *> *allGestureHandlers;
|
|
|
447
482
|
return YES;
|
|
448
483
|
}
|
|
449
484
|
}
|
|
450
|
-
}
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
if (handler->_simultaneousHandlers) {
|
|
451
488
|
for (NSNumber *handlerTag in handler->_simultaneousHandlers) {
|
|
452
489
|
if ([self.tag isEqual:handlerTag]) {
|
|
453
490
|
return YES;
|
|
@@ -12,36 +12,45 @@
|
|
|
12
12
|
|
|
13
13
|
- (instancetype)initWithData:(NSDictionary *)data;
|
|
14
14
|
|
|
15
|
-
+ (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position withAbsolutePosition:(CGPoint)absolutePosition;
|
|
16
15
|
+ (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position
|
|
17
16
|
withAbsolutePosition:(CGPoint)absolutePosition
|
|
18
|
-
|
|
17
|
+
withPointerType:(NSInteger)pointerType;
|
|
19
18
|
+ (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position
|
|
20
19
|
withAbsolutePosition:(CGPoint)absolutePosition
|
|
21
20
|
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
22
|
-
|
|
21
|
+
withPointerType:(NSInteger)pointerType;
|
|
22
|
+
+ (RNGestureHandlerEventExtraData *)forPosition:(CGPoint)position
|
|
23
|
+
withAbsolutePosition:(CGPoint)absolutePosition
|
|
24
|
+
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
25
|
+
withDuration:(NSUInteger)duration
|
|
26
|
+
withPointerType:(NSInteger)pointerType;
|
|
23
27
|
+ (RNGestureHandlerEventExtraData *)forPan:(CGPoint)position
|
|
24
28
|
withAbsolutePosition:(CGPoint)absolutePosition
|
|
25
29
|
withTranslation:(CGPoint)translation
|
|
26
30
|
withVelocity:(CGPoint)velocity
|
|
27
|
-
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
31
|
+
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
32
|
+
withPointerType:(NSInteger)pointerType;
|
|
28
33
|
+ (RNGestureHandlerEventExtraData *)forForce:(CGFloat)force
|
|
29
34
|
forPosition:(CGPoint)position
|
|
30
35
|
withAbsolutePosition:(CGPoint)absolutePosition
|
|
31
|
-
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
36
|
+
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
37
|
+
withPointerType:(NSInteger)pointerType;
|
|
32
38
|
+ (RNGestureHandlerEventExtraData *)forPinch:(CGFloat)scale
|
|
33
39
|
withFocalPoint:(CGPoint)focalPoint
|
|
34
40
|
withVelocity:(CGFloat)velocity
|
|
35
|
-
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
41
|
+
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
42
|
+
withPointerType:(NSInteger)pointerType;
|
|
36
43
|
+ (RNGestureHandlerEventExtraData *)forRotation:(CGFloat)rotation
|
|
37
44
|
withAnchorPoint:(CGPoint)anchorPoint
|
|
38
45
|
withVelocity:(CGFloat)velocity
|
|
39
|
-
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
46
|
+
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
47
|
+
withPointerType:(NSInteger)pointerType;
|
|
40
48
|
+ (RNGestureHandlerEventExtraData *)forEventType:(RNGHTouchEventType)eventType
|
|
41
49
|
withChangedPointers:(NSArray<NSDictionary *> *)changedPointers
|
|
42
50
|
withAllPointers:(NSArray<NSDictionary *> *)allPointers
|
|
43
|
-
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
44
|
-
|
|
51
|
+
withNumberOfTouches:(NSUInteger)numberOfTouches
|
|
52
|
+
withPointerType:(NSInteger)pointerType;
|
|
53
|
+
+ (RNGestureHandlerEventExtraData *)forPointerInside:(BOOL)pointerInside withPointerType:(NSInteger)pointerType;
|
|
45
54
|
@end
|
|
46
55
|
|
|
47
56
|
@interface RNGestureHandlerEvent : NSObject <RCTEvent>
|