@@ -8,12 +8,18 @@ import { findDecorationTarget, handleDecorationClickEvent } from "./decorator";
88import { adjustPointToViewport } from "./rect" ;
99import { findNearestInteractiveElement } from "./dom" ;
1010
11+ let isSelecting = false ;
12+
1113window . 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
1925function onClick ( event ) {
@@ -62,6 +68,11 @@ function onPointerCancel(event) {
6268}
6369
6470function 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