From 05f6df72ffcba48222a0d372eb6e97d11b719adc Mon Sep 17 00:00:00 2001 From: Michael Herzog Date: Fri, 24 Feb 2023 11:00:27 +0100 Subject: [PATCH] OrbitControls: Use `onPointerUp()` for `pointercancel` events. (#25540) * OrbitControls: Set state to `NONE` in `onPointerCancel()`. * OrbitContorls: Use `onPointerUp()` for pointercancel events. --- examples/jsm/controls/OrbitControls.js | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/examples/jsm/controls/OrbitControls.js b/examples/jsm/controls/OrbitControls.js index 16169dcc8b750d..b42e81e5d8022b 100644 --- a/examples/jsm/controls/OrbitControls.js +++ b/examples/jsm/controls/OrbitControls.js @@ -301,7 +301,7 @@ class OrbitControls extends EventDispatcher { scope.domElement.removeEventListener( 'contextmenu', onContextMenu ); scope.domElement.removeEventListener( 'pointerdown', onPointerDown ); - scope.domElement.removeEventListener( 'pointercancel', onPointerCancel ); + scope.domElement.removeEventListener( 'pointercancel', onPointerUp ); scope.domElement.removeEventListener( 'wheel', onMouseWheel ); scope.domElement.removeEventListener( 'pointermove', onPointerMove ); @@ -883,26 +883,20 @@ class OrbitControls extends EventDispatcher { function onPointerUp( event ) { - removePointer( event ); - - if ( pointers.length === 0 ) { - - scope.domElement.releasePointerCapture( event.pointerId ); - - scope.domElement.removeEventListener( 'pointermove', onPointerMove ); - scope.domElement.removeEventListener( 'pointerup', onPointerUp ); + removePointer( event ); - } + if ( pointers.length === 0 ) { - scope.dispatchEvent( _endEvent ); + scope.domElement.releasePointerCapture( event.pointerId ); - state = STATE.NONE; + scope.domElement.removeEventListener( 'pointermove', onPointerMove ); + scope.domElement.removeEventListener( 'pointerup', onPointerUp ); - } + } - function onPointerCancel( event ) { + scope.dispatchEvent( _endEvent ); - removePointer( event ); + state = STATE.NONE; } @@ -1254,7 +1248,7 @@ class OrbitControls extends EventDispatcher { scope.domElement.addEventListener( 'contextmenu', onContextMenu ); scope.domElement.addEventListener( 'pointerdown', onPointerDown ); - scope.domElement.addEventListener( 'pointercancel', onPointerCancel ); + scope.domElement.addEventListener( 'pointercancel', onPointerUp ); scope.domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } ); // force an update at start