Skip to content

Commit 31160b1

Browse files
committed
fix(ios): camera control is frozen after system gestures
1 parent ae55b89 commit 31160b1

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

src/index.ts

+5-9
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,7 @@ async function connect(connectOptions: {
647647
onCameraMove({ movementX: x * 10, movementY: z * 10, type: 'touchmove' })
648648
})
649649

650-
registerListener(document, 'lostpointercapture', (e) => {
650+
const pointerUpHandler = (e: PointerEvent) => {
651651
if (e.pointerId === undefined || e.pointerId !== capturedPointer?.id) return
652652
clearTimeout(virtualClickTimeout)
653653
virtualClickTimeout = undefined
@@ -662,15 +662,11 @@ async function connect(connectOptions: {
662662
document.dispatchEvent(new MouseEvent('mouseup', { button: 2 }))
663663
}
664664
capturedPointer = undefined
665-
}, { passive: false })
666-
667-
registerListener(document, 'pointerup', (e) => {
668-
const clickedEl = e.composedPath()[0]
669-
if (!isGameActive(true) || !miscUiState.currentTouch || clickedEl !== cameraControlEl || e.pointerId === undefined) {
670-
return
671-
}
672665
screenTouches--
673-
})
666+
}
667+
registerListener(document, 'pointerup', pointerUpHandler)
668+
registerListener(document, 'pointercancel', pointerUpHandler)
669+
registerListener(document, 'lostpointercapture', pointerUpHandler)
674670

675671
registerListener(document, 'contextmenu', (e) => e.preventDefault(), false)
676672

0 commit comments

Comments
 (0)