diff --git a/examples/js/controls/OrbitControls.js b/examples/js/controls/OrbitControls.js index 236df576051165d70f38d9bdb1a8ce21a5c4f424..d385894bd9c72f00c70cffd0c2c45d16d653933b 100644 --- a/examples/js/controls/OrbitControls.js +++ b/examples/js/controls/OrbitControls.js @@ -258,7 +258,7 @@ THREE.OrbitControls = function ( object, domElement ) { document.removeEventListener( 'mousemove', onMouseMove, false ); document.removeEventListener( 'mouseup', onMouseUp, false ); - window.removeEventListener( 'keydown', onKeyDown, false ); + scope.domElement.removeEventListener( 'keydown', onKeyDown, false ); //scope.dispatchEvent( { type: 'dispose' } ); // should this be added here? @@ -1136,7 +1136,15 @@ THREE.OrbitControls = function ( object, domElement ) { scope.domElement.addEventListener( 'touchend', onTouchEnd, false ); scope.domElement.addEventListener( 'touchmove', onTouchMove, false ); - window.addEventListener( 'keydown', onKeyDown, false ); + scope.domElement.addEventListener( 'keydown', onKeyDown, false ); + + // make sure element can receive keys. + + if ( scope.domElement !== document && scope.domElement.tabIndex === -1) { + + scope.domElement.tabIndex = 0; + + } // force an update at start