react-native-gesture-handler 2.12.0 → 2.13.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 +0 -15
- package/android/build.gradle +5 -76
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +16 -1
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +43 -18
- package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +120 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +7 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +5 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +43 -16
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +21 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +9 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +10 -0
- package/ios/Handlers/RNHoverHandler.h +12 -0
- package/ios/Handlers/RNHoverHandler.m +152 -0
- package/ios/RNGestureHandlerButtonComponentView.mm +2 -0
- package/ios/RNGestureHandlerEvents.h +1 -0
- package/ios/RNGestureHandlerEvents.m +10 -0
- package/ios/RNGestureHandlerManager.mm +2 -0
- package/ios/RNManualActivationRecognizer.m +2 -1
- package/ios/RNRootViewGestureRecognizer.m +7 -2
- package/lib/commonjs/RNGestureHandlerModule.macos.js +3 -1
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +7 -2
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +3 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +1 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +1 -2
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/index.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +4 -4
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +4 -2
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +5 -0
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js +5 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/commonjs/handlers/gestures/hoverGesture.js +74 -0
- package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -0
- package/lib/commonjs/index.js +8 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -10
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +61 -88
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +62 -0
- package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +6 -7
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +12 -4
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +2 -7
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -10
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js +1 -1
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/EventManager.js +18 -4
- package/lib/commonjs/web/tools/EventManager.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js +6 -0
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +5 -7
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +118 -0
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -0
- package/lib/commonjs/web/tools/PointerEventManager.js +38 -5
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/TouchEventManager.js +2 -2
- package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.macos.js +2 -1
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +6 -3
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +2 -1
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +1 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +1 -2
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/module/components/touchables/index.js.map +1 -1
- package/lib/module/handlers/createHandler.js +4 -4
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +3 -2
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +5 -0
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureObjects.js +4 -0
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/module/handlers/gestures/hoverGesture.js +62 -0
- package/lib/module/handlers/gestures/hoverGesture.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -10
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +61 -84
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/HoverGestureHandler.js +47 -0
- package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js +5 -7
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +11 -4
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +2 -7
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +0 -10
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js +1 -1
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/EventManager.js +18 -4
- package/lib/module/web/tools/EventManager.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerDelegate.js +2 -0
- package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +5 -6
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +102 -0
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -0
- package/lib/module/web/tools/PointerEventManager.js +39 -6
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/TouchEventManager.js +2 -2
- package/lib/module/web/tools/TouchEventManager.js.map +1 -1
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +3 -1
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +7 -1
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +3 -2
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +4 -3
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +3 -2
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +4 -5
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +1 -0
- package/lib/typescript/components/touchables/index.d.ts +3 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +2 -1
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +2 -0
- package/lib/typescript/handlers/gestures/hoverGesture.d.ts +32 -0
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -6
- package/lib/typescript/web/handlers/GestureHandler.d.ts +12 -17
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +10 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -4
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -1
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +0 -4
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +0 -6
- package/lib/typescript/web/interfaces.d.ts +4 -3
- package/lib/typescript/web/tools/EventManager.d.ts +9 -5
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +22 -0
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +21 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
- package/lib/typescript/web/tools/PointerEventManager.d.ts +1 -1
- package/lib/typescript/web/tools/TouchEventManager.d.ts +1 -1
- package/package.json +2 -2
- package/src/RNGestureHandlerModule.macos.ts +5 -1
- package/src/RNGestureHandlerModule.web.ts +7 -1
- package/src/RNGestureHandlerModule.windows.ts +5 -1
- package/src/components/DrawerLayout.tsx +9 -0
- package/src/components/touchables/GenericTouchable.tsx +4 -4
- package/src/components/touchables/TouchableHighlight.tsx +6 -3
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +5 -4
- package/src/components/touchables/TouchableOpacity.tsx +6 -7
- package/src/components/touchables/TouchableWithoutFeedback.tsx +3 -1
- package/src/components/touchables/index.ts +3 -0
- package/src/handlers/createHandler.tsx +5 -3
- package/src/handlers/gestureHandlerCommon.ts +39 -0
- package/src/handlers/gestures/GestureDetector.tsx +3 -1
- package/src/handlers/gestures/gesture.ts +6 -0
- package/src/handlers/gestures/gestureObjects.ts +5 -0
- package/src/handlers/gestures/hoverGesture.ts +83 -0
- package/src/index.ts +8 -0
- package/src/web/handlers/FlingGestureHandler.ts +0 -11
- package/src/web/handlers/GestureHandler.ts +68 -88
- package/src/web/handlers/HoverGestureHandler.ts +43 -0
- package/src/web/handlers/LongPressGestureHandler.ts +5 -7
- package/src/web/handlers/NativeViewGestureHandler.ts +11 -4
- package/src/web/handlers/PanGestureHandler.ts +1 -6
- package/src/web/handlers/TapGestureHandler.ts +0 -11
- package/src/web/interfaces.ts +4 -2
- package/src/web/tools/EventManager.ts +15 -7
- package/src/web/tools/GestureHandlerDelegate.ts +23 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +7 -6
- package/src/web/tools/GestureHandlerWebDelegate.ts +115 -0
- package/src/web/tools/PointerEventManager.ts +46 -16
- package/src/web/tools/TouchEventManager.ts +3 -3
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
-
import { findNodeHandle } from 'react-native';
|
|
3
2
|
import { State } from '../../State';
|
|
4
3
|
import {
|
|
5
4
|
Config,
|
|
@@ -15,26 +14,22 @@ import {
|
|
|
15
14
|
import EventManager from '../tools/EventManager';
|
|
16
15
|
import GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';
|
|
17
16
|
import InteractionManager from '../tools/InteractionManager';
|
|
18
|
-
import PointerEventManager from '../tools/PointerEventManager';
|
|
19
17
|
import PointerTracker, { TrackerElement } from '../tools/PointerTracker';
|
|
20
|
-
import
|
|
21
|
-
import { isPointerInBounds } from '../utils';
|
|
18
|
+
import { GestureHandlerDelegate } from '../tools/GestureHandlerDelegate';
|
|
22
19
|
|
|
23
20
|
export default abstract class GestureHandler {
|
|
24
21
|
private lastSentState: State | null = null;
|
|
25
22
|
protected currentState: State = State.UNDETERMINED;
|
|
26
23
|
|
|
27
24
|
protected shouldCancellWhenOutside = false;
|
|
28
|
-
protected hasCustomActivationCriteria
|
|
25
|
+
protected hasCustomActivationCriteria = false;
|
|
29
26
|
protected enabled = false;
|
|
30
27
|
|
|
31
|
-
private
|
|
28
|
+
private viewRef!: number;
|
|
32
29
|
private propsRef!: React.RefObject<unknown>;
|
|
33
30
|
private handlerTag!: number;
|
|
34
31
|
protected config: Config = { enabled: false };
|
|
35
|
-
protected view!: HTMLElement;
|
|
36
32
|
|
|
37
|
-
protected eventManagers: EventManager[] = [];
|
|
38
33
|
protected tracker: PointerTracker = new PointerTracker();
|
|
39
34
|
|
|
40
35
|
// Orchestrator properties
|
|
@@ -44,59 +39,38 @@ export default abstract class GestureHandler {
|
|
|
44
39
|
protected shouldResetProgress = false;
|
|
45
40
|
protected pointerType: PointerType = PointerType.NONE;
|
|
46
41
|
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
protected delegate: GestureHandlerDelegate<unknown>;
|
|
43
|
+
|
|
44
|
+
public constructor(delegate: GestureHandlerDelegate<unknown>) {
|
|
45
|
+
this.delegate = delegate;
|
|
49
46
|
}
|
|
50
47
|
|
|
51
48
|
//
|
|
52
49
|
// Initializing handler
|
|
53
50
|
//
|
|
54
51
|
|
|
55
|
-
protected init(
|
|
52
|
+
protected init(viewRef: number, propsRef: React.RefObject<unknown>) {
|
|
56
53
|
this.propsRef = propsRef;
|
|
57
|
-
this.
|
|
54
|
+
this.viewRef = viewRef;
|
|
58
55
|
|
|
59
56
|
this.currentState = State.UNDETERMINED;
|
|
60
57
|
|
|
61
|
-
this.
|
|
62
|
-
this.addEventManager(new PointerEventManager(this.view));
|
|
63
|
-
this.addEventManager(new TouchEventManager(this.view));
|
|
58
|
+
this.delegate.init(viewRef, this);
|
|
64
59
|
}
|
|
65
60
|
|
|
66
|
-
|
|
67
|
-
if (!this.ref) {
|
|
68
|
-
throw new Error(
|
|
69
|
-
`Cannot find HTML Element for handler ${this.handlerTag}`
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
this.view = findNodeHandle(this.ref) as unknown as HTMLElement;
|
|
74
|
-
this.view.style['touchAction'] = 'none';
|
|
75
|
-
//@ts-ignore This one disables default events on Safari
|
|
76
|
-
this.view.style['WebkitTouchCallout'] = 'none';
|
|
77
|
-
|
|
78
|
-
if (!this.config.userSelect) {
|
|
79
|
-
this.view.style['webkitUserSelect'] = 'none';
|
|
80
|
-
this.view.style['userSelect'] = 'none';
|
|
81
|
-
} else {
|
|
82
|
-
this.view.style['webkitUserSelect'] = this.config.userSelect;
|
|
83
|
-
this.view.style['userSelect'] = this.config.userSelect;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
private addEventManager(manager: EventManager): void {
|
|
61
|
+
public attachEventManager(manager: EventManager<unknown>): void {
|
|
88
62
|
manager.setOnPointerDown(this.onPointerDown.bind(this));
|
|
89
63
|
manager.setOnPointerAdd(this.onPointerAdd.bind(this));
|
|
90
64
|
manager.setOnPointerUp(this.onPointerUp.bind(this));
|
|
91
65
|
manager.setOnPointerRemove(this.onPointerRemove.bind(this));
|
|
92
66
|
manager.setOnPointerMove(this.onPointerMove.bind(this));
|
|
93
67
|
manager.setOnPointerEnter(this.onPointerEnter.bind(this));
|
|
94
|
-
manager.
|
|
68
|
+
manager.setOnPointerLeave(this.onPointerLeave.bind(this));
|
|
95
69
|
manager.setOnPointerCancel(this.onPointerCancel.bind(this));
|
|
96
70
|
manager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));
|
|
71
|
+
manager.setOnPointerMoveOver(this.onPointerMoveOver.bind(this));
|
|
72
|
+
manager.setOnPointerMoveOut(this.onPointerMoveOut.bind(this));
|
|
97
73
|
manager.setListeners();
|
|
98
|
-
|
|
99
|
-
this.eventManagers.push(manager);
|
|
100
74
|
}
|
|
101
75
|
|
|
102
76
|
//
|
|
@@ -111,9 +85,7 @@ export default abstract class GestureHandler {
|
|
|
111
85
|
this.tracker.resetTracker();
|
|
112
86
|
this.onReset();
|
|
113
87
|
this.resetProgress();
|
|
114
|
-
this.
|
|
115
|
-
manager.resetManager()
|
|
116
|
-
);
|
|
88
|
+
this.delegate.reset();
|
|
117
89
|
this.currentState = State.UNDETERMINED;
|
|
118
90
|
}
|
|
119
91
|
|
|
@@ -167,8 +139,11 @@ export default abstract class GestureHandler {
|
|
|
167
139
|
this.currentState === State.ACTIVE ||
|
|
168
140
|
this.currentState === State.BEGAN
|
|
169
141
|
) {
|
|
142
|
+
// Here the order of calling the delegate and moveToState is important.
|
|
143
|
+
// At this point we can use currentState as previuos state, because immediately after changing cursor we call moveToState method.
|
|
144
|
+
this.delegate.onFail();
|
|
145
|
+
|
|
170
146
|
this.moveToState(State.FAILED, sendIfDisabled);
|
|
171
|
-
this.view.style.cursor = 'auto';
|
|
172
147
|
}
|
|
173
148
|
|
|
174
149
|
this.resetProgress();
|
|
@@ -184,8 +159,11 @@ export default abstract class GestureHandler {
|
|
|
184
159
|
this.currentState === State.BEGAN
|
|
185
160
|
) {
|
|
186
161
|
this.onCancel();
|
|
162
|
+
|
|
163
|
+
// Same as above - order matters
|
|
164
|
+
this.delegate.onCancel();
|
|
165
|
+
|
|
187
166
|
this.moveToState(State.CANCELLED, sendIfDisabled);
|
|
188
|
-
this.view.style.cursor = 'auto';
|
|
189
167
|
}
|
|
190
168
|
}
|
|
191
169
|
|
|
@@ -194,8 +172,9 @@ export default abstract class GestureHandler {
|
|
|
194
172
|
this.currentState === State.UNDETERMINED ||
|
|
195
173
|
this.currentState === State.BEGAN
|
|
196
174
|
) {
|
|
175
|
+
this.delegate.onActivate();
|
|
176
|
+
|
|
197
177
|
this.moveToState(State.ACTIVE);
|
|
198
|
-
this.view.style.cursor = 'grab';
|
|
199
178
|
}
|
|
200
179
|
}
|
|
201
180
|
|
|
@@ -204,8 +183,10 @@ export default abstract class GestureHandler {
|
|
|
204
183
|
this.currentState === State.BEGAN ||
|
|
205
184
|
this.currentState === State.ACTIVE
|
|
206
185
|
) {
|
|
186
|
+
// Same as above - order matters
|
|
187
|
+
this.delegate.onEnd();
|
|
188
|
+
|
|
207
189
|
this.moveToState(State.END);
|
|
208
|
-
this.view.style.cursor = 'auto';
|
|
209
190
|
}
|
|
210
191
|
|
|
211
192
|
this.resetProgress();
|
|
@@ -326,7 +307,7 @@ export default abstract class GestureHandler {
|
|
|
326
307
|
this.sendTouchEvent(event);
|
|
327
308
|
}
|
|
328
309
|
}
|
|
329
|
-
protected
|
|
310
|
+
protected onPointerLeave(event: AdaptedEvent): void {
|
|
330
311
|
if (this.shouldCancellWhenOutside) {
|
|
331
312
|
switch (this.currentState) {
|
|
332
313
|
case State.ACTIVE:
|
|
@@ -362,6 +343,12 @@ export default abstract class GestureHandler {
|
|
|
362
343
|
this.sendTouchEvent(event);
|
|
363
344
|
}
|
|
364
345
|
}
|
|
346
|
+
protected onPointerMoveOver(_event: AdaptedEvent): void {
|
|
347
|
+
// used only by hover gesture handler atm
|
|
348
|
+
}
|
|
349
|
+
protected onPointerMoveOut(_event: AdaptedEvent): void {
|
|
350
|
+
// used only by hover gesture handler atm
|
|
351
|
+
}
|
|
365
352
|
private tryToSendMoveEvent(out: boolean): void {
|
|
366
353
|
if (
|
|
367
354
|
this.enabled &&
|
|
@@ -421,13 +408,13 @@ export default abstract class GestureHandler {
|
|
|
421
408
|
nativeEvent: {
|
|
422
409
|
numberOfPointers: this.tracker.getTrackedPointersCount(),
|
|
423
410
|
state: newState,
|
|
424
|
-
pointerInside: isPointerInBounds(
|
|
411
|
+
pointerInside: this.delegate.isPointerInBounds({
|
|
425
412
|
x: this.tracker.getLastAvgX(),
|
|
426
413
|
y: this.tracker.getLastAvgY(),
|
|
427
414
|
}),
|
|
428
415
|
...this.transformNativeEvent(),
|
|
429
416
|
handlerTag: this.handlerTag,
|
|
430
|
-
target: this.
|
|
417
|
+
target: this.viewRef,
|
|
431
418
|
oldState: newState !== oldState ? oldState : undefined,
|
|
432
419
|
},
|
|
433
420
|
timeStamp: Date.now(),
|
|
@@ -437,7 +424,7 @@ export default abstract class GestureHandler {
|
|
|
437
424
|
private transformTouchEvent(
|
|
438
425
|
event: AdaptedEvent
|
|
439
426
|
): ResultTouchEvent | undefined {
|
|
440
|
-
const rect = this.
|
|
427
|
+
const rect = this.delegate.measureView();
|
|
441
428
|
|
|
442
429
|
const all: PointerData[] = [];
|
|
443
430
|
const changed: PointerData[] = [];
|
|
@@ -457,8 +444,8 @@ export default abstract class GestureHandler {
|
|
|
457
444
|
|
|
458
445
|
all.push({
|
|
459
446
|
id: id,
|
|
460
|
-
x: element.lastX - rect.
|
|
461
|
-
y: element.lastY - rect.
|
|
447
|
+
x: element.lastX - rect.pageX,
|
|
448
|
+
y: element.lastY - rect.pageY,
|
|
462
449
|
absoluteX: element.lastX,
|
|
463
450
|
absoluteY: element.lastY,
|
|
464
451
|
});
|
|
@@ -469,8 +456,8 @@ export default abstract class GestureHandler {
|
|
|
469
456
|
if (event.eventType !== EventTypes.CANCEL) {
|
|
470
457
|
changed.push({
|
|
471
458
|
id: this.tracker.getMappedTouchEventId(event.pointerId),
|
|
472
|
-
x: event.x - rect.
|
|
473
|
-
y: event.y - rect.
|
|
459
|
+
x: event.x - rect.pageX,
|
|
460
|
+
y: event.y - rect.pageY,
|
|
474
461
|
absoluteX: event.x,
|
|
475
462
|
absoluteY: event.y,
|
|
476
463
|
});
|
|
@@ -480,8 +467,8 @@ export default abstract class GestureHandler {
|
|
|
480
467
|
|
|
481
468
|
changed.push({
|
|
482
469
|
id: id,
|
|
483
|
-
x: element.lastX - rect.
|
|
484
|
-
y: element.lastY - rect.
|
|
470
|
+
x: element.lastX - rect.pageX,
|
|
471
|
+
y: element.lastY - rect.pageY,
|
|
485
472
|
absoluteX: element.lastX,
|
|
486
473
|
absoluteY: element.lastY,
|
|
487
474
|
});
|
|
@@ -533,7 +520,7 @@ export default abstract class GestureHandler {
|
|
|
533
520
|
}
|
|
534
521
|
|
|
535
522
|
private cancelTouches(): void {
|
|
536
|
-
const rect = this.
|
|
523
|
+
const rect = this.delegate.measureView();
|
|
537
524
|
|
|
538
525
|
const all: PointerData[] = [];
|
|
539
526
|
const changed: PointerData[] = [];
|
|
@@ -549,16 +536,16 @@ export default abstract class GestureHandler {
|
|
|
549
536
|
|
|
550
537
|
all.push({
|
|
551
538
|
id: id,
|
|
552
|
-
x: element.lastX - rect.
|
|
553
|
-
y: element.lastY - rect.
|
|
539
|
+
x: element.lastX - rect.pageX,
|
|
540
|
+
y: element.lastY - rect.pageY,
|
|
554
541
|
absoluteX: element.lastX,
|
|
555
542
|
absoluteY: element.lastY,
|
|
556
543
|
});
|
|
557
544
|
|
|
558
545
|
changed.push({
|
|
559
546
|
id: id,
|
|
560
|
-
x: element.lastX - rect.
|
|
561
|
-
y: element.lastY - rect.
|
|
547
|
+
x: element.lastX - rect.pageX,
|
|
548
|
+
y: element.lastY - rect.pageY,
|
|
562
549
|
absoluteX: element.lastX,
|
|
563
550
|
absoluteY: element.lastY,
|
|
564
551
|
});
|
|
@@ -582,8 +569,16 @@ export default abstract class GestureHandler {
|
|
|
582
569
|
invokeNullableMethod(onGestureHandlerEvent, cancelEvent);
|
|
583
570
|
}
|
|
584
571
|
|
|
585
|
-
protected transformNativeEvent() {
|
|
586
|
-
|
|
572
|
+
protected transformNativeEvent(): Record<string, unknown> {
|
|
573
|
+
// those properties are shared by most handlers and if not this method will be overriden
|
|
574
|
+
const rect = this.delegate.measureView();
|
|
575
|
+
|
|
576
|
+
return {
|
|
577
|
+
x: this.tracker.getLastAvgX() - rect.pageX,
|
|
578
|
+
y: this.tracker.getLastAvgY() - rect.pageY,
|
|
579
|
+
absoluteX: this.tracker.getLastAvgX(),
|
|
580
|
+
absoluteY: this.tracker.getLastAvgY(),
|
|
581
|
+
};
|
|
587
582
|
}
|
|
588
583
|
|
|
589
584
|
//
|
|
@@ -678,8 +673,7 @@ export default abstract class GestureHandler {
|
|
|
678
673
|
return true;
|
|
679
674
|
}
|
|
680
675
|
|
|
681
|
-
const width = this.
|
|
682
|
-
const height = this.view.getBoundingClientRect().height;
|
|
676
|
+
const { width, height } = this.delegate.measureView();
|
|
683
677
|
|
|
684
678
|
let left = 0;
|
|
685
679
|
let top = 0;
|
|
@@ -727,9 +721,9 @@ export default abstract class GestureHandler {
|
|
|
727
721
|
}
|
|
728
722
|
}
|
|
729
723
|
|
|
730
|
-
const rect
|
|
731
|
-
const offsetX: number = this.tracker.getLastX() - rect.
|
|
732
|
-
const offsetY: number = this.tracker.getLastY() - rect.
|
|
724
|
+
const rect = this.delegate.measureView();
|
|
725
|
+
const offsetX: number = this.tracker.getLastX() - rect.pageX;
|
|
726
|
+
const offsetY: number = this.tracker.getLastY() - rect.pageY;
|
|
733
727
|
|
|
734
728
|
if (
|
|
735
729
|
offsetX >= left &&
|
|
@@ -742,14 +736,6 @@ export default abstract class GestureHandler {
|
|
|
742
736
|
return false;
|
|
743
737
|
}
|
|
744
738
|
|
|
745
|
-
public isPointerInBounds({ x, y }: { x: number; y: number }): boolean {
|
|
746
|
-
const rect: DOMRect = this.view.getBoundingClientRect();
|
|
747
|
-
|
|
748
|
-
return (
|
|
749
|
-
x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom
|
|
750
|
-
);
|
|
751
|
-
}
|
|
752
|
-
|
|
753
739
|
protected resetConfig(): void {}
|
|
754
740
|
|
|
755
741
|
//
|
|
@@ -759,24 +745,17 @@ export default abstract class GestureHandler {
|
|
|
759
745
|
public getTag(): number {
|
|
760
746
|
return this.handlerTag;
|
|
761
747
|
}
|
|
748
|
+
|
|
762
749
|
public setTag(tag: number): void {
|
|
763
750
|
this.handlerTag = tag;
|
|
764
751
|
}
|
|
765
752
|
|
|
766
|
-
|
|
753
|
+
public getConfig() {
|
|
767
754
|
return this.config;
|
|
768
755
|
}
|
|
769
756
|
|
|
770
|
-
public
|
|
771
|
-
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
public getView(): HTMLElement {
|
|
775
|
-
return this.view;
|
|
776
|
-
}
|
|
777
|
-
|
|
778
|
-
public getEventManagers(): EventManager[] {
|
|
779
|
-
return this.eventManagers;
|
|
757
|
+
public getDelegate(): GestureHandlerDelegate<unknown> {
|
|
758
|
+
return this.delegate;
|
|
780
759
|
}
|
|
781
760
|
|
|
782
761
|
public getTracker(): PointerTracker {
|
|
@@ -806,6 +785,7 @@ export default abstract class GestureHandler {
|
|
|
806
785
|
protected setShouldCancelWhenOutside(shouldCancel: boolean) {
|
|
807
786
|
this.shouldCancellWhenOutside = shouldCancel;
|
|
808
787
|
}
|
|
788
|
+
|
|
809
789
|
protected getShouldCancelWhenOutside(): boolean {
|
|
810
790
|
return this.shouldCancellWhenOutside;
|
|
811
791
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { State } from '../../../src/State';
|
|
2
|
+
import { AdaptedEvent, Config } from '../interfaces';
|
|
3
|
+
import GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';
|
|
4
|
+
import GestureHandler from './GestureHandler';
|
|
5
|
+
|
|
6
|
+
export default class HoverGestureHandler extends GestureHandler {
|
|
7
|
+
public init(ref: number, propsRef: React.RefObject<unknown>) {
|
|
8
|
+
super.init(ref, propsRef);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
public updateGestureConfig({ enabled = true, ...props }: Config): void {
|
|
12
|
+
super.updateGestureConfig({ enabled: enabled, ...props });
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
protected onPointerMoveOver(event: AdaptedEvent): void {
|
|
16
|
+
GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);
|
|
17
|
+
|
|
18
|
+
this.tracker.addToTracker(event);
|
|
19
|
+
super.onPointerMoveOver(event);
|
|
20
|
+
|
|
21
|
+
if (this.getState() === State.UNDETERMINED) {
|
|
22
|
+
this.begin();
|
|
23
|
+
this.activate();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
protected onPointerMoveOut(event: AdaptedEvent): void {
|
|
28
|
+
this.tracker.addToTracker(event);
|
|
29
|
+
super.onPointerMoveOut(event);
|
|
30
|
+
|
|
31
|
+
this.end();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
protected onPointerMove(event: AdaptedEvent): void {
|
|
35
|
+
this.tracker.track(event);
|
|
36
|
+
super.onPointerMove(event);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
protected onPointerCancel(event: AdaptedEvent): void {
|
|
40
|
+
super.onPointerCancel(event);
|
|
41
|
+
this.reset();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
1
2
|
import { State } from '../../State';
|
|
2
3
|
import { AdaptedEvent, Config } from '../interfaces';
|
|
3
4
|
|
|
@@ -23,17 +24,14 @@ export default class LongPressGestureHandler extends GestureHandler {
|
|
|
23
24
|
public init(ref: number, propsRef: React.RefObject<unknown>) {
|
|
24
25
|
super.init(ref, propsRef);
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
if (Platform.OS === 'web') {
|
|
28
|
+
(this.delegate.getView() as HTMLElement).oncontextmenu = () => false;
|
|
29
|
+
}
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
protected transformNativeEvent() {
|
|
30
|
-
const rect: DOMRect = this.view.getBoundingClientRect();
|
|
31
|
-
|
|
32
33
|
return {
|
|
33
|
-
|
|
34
|
-
y: this.tracker.getLastAvgY() - rect.top,
|
|
35
|
-
absoluteX: this.tracker.getLastAvgX(),
|
|
36
|
-
absoluteY: this.tracker.getLastAvgY(),
|
|
34
|
+
...super.transformNativeEvent(),
|
|
37
35
|
duration: Date.now() - this.startTime,
|
|
38
36
|
};
|
|
39
37
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
1
2
|
import { State } from '../../State';
|
|
2
3
|
import { DEFAULT_TOUCH_SLOP } from '../constants';
|
|
3
4
|
import { AdaptedEvent, Config } from '../interfaces';
|
|
@@ -20,12 +21,18 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
|
20
21
|
|
|
21
22
|
this.setShouldCancelWhenOutside(true);
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
if (Platform.OS !== 'web') {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const view = this.delegate.getView() as HTMLElement;
|
|
29
|
+
|
|
30
|
+
view.style['touchAction'] = 'auto';
|
|
24
31
|
|
|
25
32
|
//@ts-ignore Turns on defualt touch behavior on Safari
|
|
26
|
-
|
|
33
|
+
view.style['WebkitTouchCallout'] = 'auto';
|
|
27
34
|
|
|
28
|
-
if (
|
|
35
|
+
if (view.hasAttribute('role')) {
|
|
29
36
|
this.buttonRole = true;
|
|
30
37
|
} else {
|
|
31
38
|
this.buttonRole = false;
|
|
@@ -89,7 +96,7 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
|
89
96
|
}
|
|
90
97
|
}
|
|
91
98
|
|
|
92
|
-
protected
|
|
99
|
+
protected onPointerLeave(): void {
|
|
93
100
|
if (
|
|
94
101
|
this.currentState === State.BEGAN ||
|
|
95
102
|
this.currentState === State.ACTIVE
|
|
@@ -186,20 +186,15 @@ export default class PanGestureHandler extends GestureHandler {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
protected transformNativeEvent() {
|
|
189
|
-
const rect: DOMRect = this.view.getBoundingClientRect();
|
|
190
|
-
|
|
191
189
|
const translationX: number = this.getTranslationX();
|
|
192
190
|
const translationY: number = this.getTranslationY();
|
|
193
191
|
|
|
194
192
|
return {
|
|
193
|
+
...super.transformNativeEvent(),
|
|
195
194
|
translationX: isNaN(translationX) ? 0 : translationX,
|
|
196
195
|
translationY: isNaN(translationY) ? 0 : translationY,
|
|
197
|
-
absoluteX: this.tracker.getLastAvgX(),
|
|
198
|
-
absoluteY: this.tracker.getLastAvgY(),
|
|
199
196
|
velocityX: this.velocityX,
|
|
200
197
|
velocityY: this.velocityY,
|
|
201
|
-
x: this.tracker.getLastAvgX() - rect.left,
|
|
202
|
-
y: this.tracker.getLastAvgY() - rect.top,
|
|
203
198
|
};
|
|
204
199
|
}
|
|
205
200
|
|
|
@@ -79,17 +79,6 @@ export default class TapGestureHandler extends GestureHandler {
|
|
|
79
79
|
this.minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
protected transformNativeEvent() {
|
|
83
|
-
const rect: DOMRect = this.view.getBoundingClientRect();
|
|
84
|
-
|
|
85
|
-
return {
|
|
86
|
-
x: this.tracker.getLastAvgX() - rect.left,
|
|
87
|
-
y: this.tracker.getLastAvgY() - rect.top,
|
|
88
|
-
absoluteX: this.tracker.getLastAvgX(),
|
|
89
|
-
absoluteY: this.tracker.getLastAvgY(),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
82
|
private clearTimeouts(): void {
|
|
94
83
|
clearTimeout(this.waitTimeout);
|
|
95
84
|
clearTimeout(this.delayTimeout);
|
package/src/web/interfaces.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UserSelect } from '../handlers/gestureHandlerCommon';
|
|
1
|
+
import { UserSelect, ActiveCursor } from '../handlers/gestureHandlerCommon';
|
|
2
2
|
import { Directions } from '../Directions';
|
|
3
3
|
import { State } from '../State';
|
|
4
4
|
|
|
@@ -22,6 +22,7 @@ type ConfigArgs =
|
|
|
22
22
|
| boolean
|
|
23
23
|
| HitSlop
|
|
24
24
|
| UserSelect
|
|
25
|
+
| ActiveCursor
|
|
25
26
|
| Directions
|
|
26
27
|
| Handler[]
|
|
27
28
|
| null
|
|
@@ -34,6 +35,7 @@ export interface Config extends Record<string, ConfigArgs> {
|
|
|
34
35
|
hitSlop?: HitSlop;
|
|
35
36
|
shouldCancelWhenOutside?: boolean;
|
|
36
37
|
userSelect?: UserSelect;
|
|
38
|
+
activeCursor?: ActiveCursor;
|
|
37
39
|
|
|
38
40
|
activateAfterLongPress?: number;
|
|
39
41
|
failOffsetXStart?: number;
|
|
@@ -144,7 +146,7 @@ export enum EventTypes {
|
|
|
144
146
|
ADDITIONAL_POINTER_UP,
|
|
145
147
|
MOVE,
|
|
146
148
|
ENTER,
|
|
147
|
-
|
|
149
|
+
LEAVE,
|
|
148
150
|
CANCEL,
|
|
149
151
|
}
|
|
150
152
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
2
|
import { AdaptedEvent, EventTypes, TouchEventType } from '../interfaces';
|
|
3
3
|
|
|
4
|
-
export default abstract class EventManager {
|
|
5
|
-
protected readonly view:
|
|
4
|
+
export default abstract class EventManager<T> {
|
|
5
|
+
protected readonly view: T;
|
|
6
6
|
protected pointersInBounds: number[] = [];
|
|
7
7
|
protected activePointersCounter: number;
|
|
8
8
|
|
|
9
|
-
constructor(view:
|
|
9
|
+
constructor(view: T) {
|
|
10
10
|
this.view = view;
|
|
11
11
|
this.activePointersCounter = 0;
|
|
12
12
|
}
|
|
@@ -24,8 +24,8 @@ export default abstract class EventManager {
|
|
|
24
24
|
protected onPointerUp(_event: AdaptedEvent): void {}
|
|
25
25
|
protected onPointerRemove(_event: AdaptedEvent): void {}
|
|
26
26
|
protected onPointerMove(_event: AdaptedEvent): void {}
|
|
27
|
-
protected
|
|
28
|
-
protected onPointerEnter(_event: AdaptedEvent): void {}
|
|
27
|
+
protected onPointerLeave(_event: AdaptedEvent): void {} // called only when pointer is pressed (or touching)
|
|
28
|
+
protected onPointerEnter(_event: AdaptedEvent): void {} // called only when pointer is pressed (or touching)
|
|
29
29
|
protected onPointerCancel(_event: AdaptedEvent): void {
|
|
30
30
|
// When pointer cancel is triggered and there are more pointers on the view, only one pointer is cancelled
|
|
31
31
|
// Because we want all pointers to be cancelled by that event, we are doing it manually by reseting handler and changing activePointersCounter to 0
|
|
@@ -33,6 +33,8 @@ export default abstract class EventManager {
|
|
|
33
33
|
// is equal to 0. This prevents counter from going to negative values, when pointers are removed from view after one of them has been cancelled
|
|
34
34
|
}
|
|
35
35
|
protected onPointerOutOfBounds(_event: AdaptedEvent): void {}
|
|
36
|
+
protected onPointerMoveOver(_event: AdaptedEvent): void {}
|
|
37
|
+
protected onPointerMoveOut(_event: AdaptedEvent): void {}
|
|
36
38
|
|
|
37
39
|
public setOnPointerDown(callback: (event: AdaptedEvent) => void): void {
|
|
38
40
|
this.onPointerDown = callback;
|
|
@@ -49,8 +51,8 @@ export default abstract class EventManager {
|
|
|
49
51
|
public setOnPointerMove(callback: (event: AdaptedEvent) => void): void {
|
|
50
52
|
this.onPointerMove = callback;
|
|
51
53
|
}
|
|
52
|
-
public
|
|
53
|
-
this.
|
|
54
|
+
public setOnPointerLeave(callback: (event: AdaptedEvent) => void): void {
|
|
55
|
+
this.onPointerLeave = callback;
|
|
54
56
|
}
|
|
55
57
|
public setOnPointerEnter(callback: (event: AdaptedEvent) => void): void {
|
|
56
58
|
this.onPointerEnter = callback;
|
|
@@ -63,6 +65,12 @@ export default abstract class EventManager {
|
|
|
63
65
|
): void {
|
|
64
66
|
this.onPointerOutOfBounds = callback;
|
|
65
67
|
}
|
|
68
|
+
public setOnPointerMoveOver(callback: (event: AdaptedEvent) => void): void {
|
|
69
|
+
this.onPointerMoveOver = callback;
|
|
70
|
+
}
|
|
71
|
+
public setOnPointerMoveOut(callback: (event: AdaptedEvent) => void): void {
|
|
72
|
+
this.onPointerMoveOut = callback;
|
|
73
|
+
}
|
|
66
74
|
|
|
67
75
|
protected markAsInBounds(pointerId: number): void {
|
|
68
76
|
if (this.pointersInBounds.indexOf(pointerId) >= 0) {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type GestureHandler from '../handlers/GestureHandler';
|
|
2
|
+
|
|
3
|
+
export interface MeasureResult {
|
|
4
|
+
pageX: number;
|
|
5
|
+
pageY: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface GestureHandlerDelegate<T> {
|
|
11
|
+
getView(): T;
|
|
12
|
+
|
|
13
|
+
init(viewRef: number, handler: GestureHandler): void;
|
|
14
|
+
isPointerInBounds({ x, y }: { x: number; y: number }): boolean;
|
|
15
|
+
measureView(): MeasureResult;
|
|
16
|
+
reset(): void;
|
|
17
|
+
|
|
18
|
+
onBegin(): void;
|
|
19
|
+
onActivate(): void;
|
|
20
|
+
onEnd(): void;
|
|
21
|
+
onCancel(): void;
|
|
22
|
+
onFail(): void;
|
|
23
|
+
}
|
|
@@ -3,7 +3,6 @@ import { PointerType } from '../interfaces';
|
|
|
3
3
|
|
|
4
4
|
import GestureHandler from '../handlers/GestureHandler';
|
|
5
5
|
import PointerTracker from './PointerTracker';
|
|
6
|
-
import { isPointerInBounds } from '../utils';
|
|
7
6
|
|
|
8
7
|
export default class GestureHandlerOrchestrator {
|
|
9
8
|
private static instance: GestureHandlerOrchestrator;
|
|
@@ -301,7 +300,7 @@ export default class GestureHandlerOrchestrator {
|
|
|
301
300
|
|
|
302
301
|
if (
|
|
303
302
|
!PointerTracker.shareCommonPointers(handlerPointers, otherPointers) &&
|
|
304
|
-
handler.getView() !== otherHandler.getView()
|
|
303
|
+
handler.getDelegate().getView() !== otherHandler.getDelegate().getView()
|
|
305
304
|
) {
|
|
306
305
|
return this.checkOverlap(handler, otherHandler);
|
|
307
306
|
}
|
|
@@ -329,8 +328,10 @@ export default class GestureHandlerOrchestrator {
|
|
|
329
328
|
const handlerY: number = handler.getTracker().getLastY(pointer);
|
|
330
329
|
|
|
331
330
|
if (
|
|
332
|
-
|
|
333
|
-
|
|
331
|
+
handler.getDelegate().isPointerInBounds({ x: handlerX, y: handlerY }) &&
|
|
332
|
+
otherHandler
|
|
333
|
+
.getDelegate()
|
|
334
|
+
.isPointerInBounds({ x: handlerX, y: handlerY })
|
|
334
335
|
) {
|
|
335
336
|
overlap = true;
|
|
336
337
|
}
|
|
@@ -341,8 +342,8 @@ export default class GestureHandlerOrchestrator {
|
|
|
341
342
|
const otherY: number = otherHandler.getTracker().getLastY(pointer);
|
|
342
343
|
|
|
343
344
|
if (
|
|
344
|
-
|
|
345
|
-
|
|
345
|
+
handler.getDelegate().isPointerInBounds({ x: otherX, y: otherY }) &&
|
|
346
|
+
otherHandler.getDelegate().isPointerInBounds({ x: otherX, y: otherY })
|
|
346
347
|
) {
|
|
347
348
|
overlap = true;
|
|
348
349
|
}
|