@@ -68,11 +68,8 @@ const handledEvents = [
68
68
69
69
function preventDefault ( event ) {
70
70
if ( event . cancelable ) {
71
- event . stopPropagation ( ) ;
72
71
event . preventDefault ( ) ;
73
72
}
74
-
75
- return false ;
76
73
}
77
74
78
75
function pointerCacheToPositions ( cache ) {
@@ -211,7 +208,6 @@ function vtkRenderWindowInteractor(publicAPI, model) {
211
208
publicAPI . bindEvents = ( container ) => {
212
209
model . container = container ;
213
210
container . addEventListener ( 'contextmenu' , preventDefault ) ;
214
- // container.addEventListener('click', preventDefault); // Avoid stopping event propagation
215
211
container . addEventListener ( 'wheel' , publicAPI . handleWheel ) ;
216
212
container . addEventListener ( 'DOMMouseScroll' , publicAPI . handleWheel ) ;
217
213
container . addEventListener ( 'pointerenter' , publicAPI . handlePointerEnter ) ;
@@ -244,7 +240,6 @@ function vtkRenderWindowInteractor(publicAPI, model) {
244
240
publicAPI . unbindEvents = ( ) => {
245
241
const { container } = model ;
246
242
container . removeEventListener ( 'contextmenu' , preventDefault ) ;
247
- // model.container.removeEventListener('click', preventDefault); // Avoid stopping event propagation
248
243
container . removeEventListener ( 'wheel' , publicAPI . handleWheel ) ;
249
244
container . removeEventListener ( 'DOMMouseScroll' , publicAPI . handleWheel ) ;
250
245
container . removeEventListener ( 'pointerenter' , publicAPI . handlePointerEnter ) ;
@@ -315,7 +310,9 @@ function vtkRenderWindowInteractor(publicAPI, model) {
315
310
// ignore events from extra mouse buttons such as `back` and `forward`
316
311
return ;
317
312
}
318
- preventDefault ( event ) ;
313
+ if ( model . preventDefaultOnPointerDown ) {
314
+ preventDefault ( event ) ;
315
+ }
319
316
320
317
if ( event . target . hasPointerCapture ( event . pointerId ) ) {
321
318
event . target . releasePointerCapture ( event . pointerId ) ;
@@ -345,7 +342,9 @@ function vtkRenderWindowInteractor(publicAPI, model) {
345
342
346
343
publicAPI . handlePointerUp = ( event ) => {
347
344
if ( pointerCache . has ( event . pointerId ) ) {
348
- preventDefault ( event ) ;
345
+ if ( model . preventDefaultOnPointerUp ) {
346
+ preventDefault ( event ) ;
347
+ }
349
348
350
349
pointerCache . delete ( event . pointerId ) ;
351
350
model . container . releasePointerCapture ( event . pointerId ) ;
@@ -1140,6 +1139,8 @@ const DEFAULT_VALUES = {
1140
1139
wheelTimeoutID : 0 ,
1141
1140
moveTimeoutID : 0 ,
1142
1141
lastGamepadValues : { } ,
1142
+ preventDefaultOnPointerDown : false ,
1143
+ preventDefaultOnPointerUp : false ,
1143
1144
} ;
1144
1145
1145
1146
// ----------------------------------------------------------------------------
@@ -1177,6 +1178,8 @@ export function extend(publicAPI, model, initialValues = {}) {
1177
1178
'desiredUpdateRate' ,
1178
1179
'stillUpdateRate' ,
1179
1180
'picker' ,
1181
+ 'preventDefaultOnPointerDown' ,
1182
+ 'preventDefaultOnPointerUp' ,
1180
1183
] ) ;
1181
1184
macro . moveToProtected ( publicAPI , model , [ 'view' ] ) ;
1182
1185
0 commit comments