in share/src/components/GameButtons.tsx [165:206]
protected bindTouchEvents(div: HTMLElement) {
let touchIdentifier: number | undefined;
div.addEventListener("touchend", ev => {
if (touchIdentifier) {
const touch = getTouch(ev, touchIdentifier);
if (touch) {
this.clearButtonPresses()
ev.preventDefault();
}
}
touchIdentifier = undefined;
});
div.addEventListener("touchstart", ev => {
touchIdentifier = ev.changedTouches[0].identifier;
this.updateButtonGesture(ev.changedTouches[0].clientX, ev.changedTouches[0].clientY);
});
div.addEventListener("touchmove", ev => {
if (touchIdentifier) {
const touch = getTouch(ev, touchIdentifier);
if (touch) {
this.updateButtonGesture(touch.clientX, touch.clientY);
ev.preventDefault();
}
}
});
div.addEventListener("touchcancel", ev => {
if (touchIdentifier) {
const touch = getTouch(ev, touchIdentifier);
if (touch) {
this.clearButtonPresses();
}
}
touchIdentifier = undefined;
});
}