Skip to content

Commit 9ae4207

Browse files
authored
Merge pull request #472 from Skehmatics/fix/fenix-2
Fix touch events on Android mobile (Fenix)
2 parents 634d6a8 + d4746c3 commit 9ae4207

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

packages/pointer-events/src/forward.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ function forwardEvents(
156156
case 'move':
157157
pointer.move(scene, event)
158158
return
159+
case 'over':
160+
pointer.move(scene, event)
161+
return
159162
case 'wheel':
160163
pointer.wheel(scene, event as any)
161164
return
@@ -198,13 +201,15 @@ function forwardEvents(
198201
}
199202

200203
const pointerMoveListener = onEvent.bind(null, 'move')
204+
const pointerOverListener = onEvent.bind(null, 'over')
201205
const pointerCancelListener = onEvent.bind(null, 'cancel')
202206
const pointerDownListener = onEvent.bind(null, 'down')
203207
const pointerUpListener = onEvent.bind(null, 'up')
204208
const wheelListener = onEvent.bind(null, 'wheel')
205209
const pointerLeaveListener = onEvent.bind(null, 'exit')
206210

207211
from.addEventListener('pointermove', pointerMoveListener)
212+
from.addEventListener('pointerover', pointerOverListener)
208213
from.addEventListener('pointercancel', pointerCancelListener)
209214
from.addEventListener('pointerdown', pointerDownListener)
210215
from.addEventListener('pointerup', pointerUpListener)
@@ -214,6 +219,7 @@ function forwardEvents(
214219
return {
215220
destroy() {
216221
from.removeEventListener('pointermove', pointerMoveListener)
222+
from.removeEventListener('pointerover', pointerOverListener)
217223
from.removeEventListener('pointercancel', pointerCancelListener)
218224
from.removeEventListener('pointerdown', pointerDownListener)
219225
from.removeEventListener('pointerup', pointerUpListener)

packages/pointer-events/src/pointer.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,16 @@ export class Pointer {
268268
this.commit(nativeEvent, true)
269269
}
270270

271+
/**
272+
* computes and commits the pointer if a move has not yet occured
273+
*/
274+
over(scene: Object3D, nativeEvent: NativeEvent): void {
275+
if (!this.wasMoved) {
276+
this.intersection = this.computeIntersection('pointer', scene, nativeEvent)
277+
this.commit(nativeEvent, false)
278+
}
279+
}
280+
271281
/**
272282
* emits a move without (re-)computing the intersection
273283
* just emitting a move event to the current intersection

0 commit comments

Comments
 (0)