Skip to content

Commit e296dc1

Browse files
authored
Prevent user selection to trigger pointer events (#600)
1 parent 3c8a542 commit e296dc1

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

Sources/Navigator/EPUB/Assets/Static/scripts/readium-fixed.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Sources/Navigator/EPUB/Assets/Static/scripts/readium-reflowable.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Sources/Navigator/EPUB/Scripts/src/gestures.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,18 @@ import { findDecorationTarget, handleDecorationClickEvent } from "./decorator";
88
import { adjustPointToViewport } from "./rect";
99
import { findNearestInteractiveElement } from "./dom";
1010

11+
let isSelecting = false;
12+
1113
window.addEventListener("DOMContentLoaded", function () {
1214
document.addEventListener("click", onClick, false);
1315
document.addEventListener("pointerdown", onPointerDown, false);
1416
document.addEventListener("pointerup", onPointerUp, false);
1517
document.addEventListener("pointermove", onPointerMove, false);
1618
document.addEventListener("pointercancel", onPointerCancel, false);
19+
20+
document.addEventListener("selectionchange", function () {
21+
isSelecting = !window.getSelection().isCollapsed;
22+
});
1723
});
1824

1925
function onClick(event) {
@@ -62,6 +68,11 @@ function onPointerCancel(event) {
6268
}
6369

6470
function onPointerEvent(phase, event) {
71+
// If the user is currently selecting text, we report this event as cancelled to prevent detecting gestures.
72+
if (isSelecting) {
73+
phase = "cancel";
74+
}
75+
6576
let point = adjustPointToViewport({ x: event.clientX, y: event.clientY });
6677
let pointerEvent = {
6778
phase: phase,

0 commit comments

Comments
 (0)