@@ -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 ) ;
@@ -422,15 +421,17 @@ function vtkRenderWindowInteractor(publicAPI, model) {
422
421
423
422
//----------------------------------------------------------------------
424
423
publicAPI . requestPointerLock = ( ) => {
425
- const canvas = publicAPI . getView ( ) . getCanvas ( ) ;
426
- canvas . requestPointerLock ( ) ;
424
+ if ( model . container ) {
425
+ model . container . requestPointerLock ( ) ;
426
+ }
427
427
} ;
428
428
429
429
//----------------------------------------------------------------------
430
430
publicAPI . exitPointerLock = ( ) => document . exitPointerLock ( ) ;
431
431
432
432
//----------------------------------------------------------------------
433
- publicAPI . isPointerLocked = ( ) => ! ! document . pointerLockElement ;
433
+ publicAPI . isPointerLocked = ( ) =>
434
+ ! ! model . container && document . pointerLockElement === model . container ;
434
435
435
436
//----------------------------------------------------------------------
436
437
publicAPI . handlePointerLockChange = ( ) => {
@@ -1140,6 +1141,8 @@ const DEFAULT_VALUES = {
1140
1141
wheelTimeoutID : 0 ,
1141
1142
moveTimeoutID : 0 ,
1142
1143
lastGamepadValues : { } ,
1144
+ preventDefaultOnPointerDown : false ,
1145
+ preventDefaultOnPointerUp : false ,
1143
1146
} ;
1144
1147
1145
1148
// ----------------------------------------------------------------------------
@@ -1177,6 +1180,8 @@ export function extend(publicAPI, model, initialValues = {}) {
1177
1180
'desiredUpdateRate' ,
1178
1181
'stillUpdateRate' ,
1179
1182
'picker' ,
1183
+ 'preventDefaultOnPointerDown' ,
1184
+ 'preventDefaultOnPointerUp' ,
1180
1185
] ) ;
1181
1186
macro . moveToProtected ( publicAPI , model , [ 'view' ] ) ;
1182
1187
0 commit comments