diff --git a/packages/base/src/3dview/mainview.tsx b/packages/base/src/3dview/mainview.tsx index f847f9c6..3fd8ab60 100644 --- a/packages/base/src/3dview/mainview.tsx +++ b/packages/base/src/3dview/mainview.tsx @@ -145,10 +145,12 @@ export class MainView extends React.Component { this._transformControls.rotationSnap = THREE.MathUtils.degToRad( this.state.rotationSnapValue ); - this._transformControls.addEventListener('change', () => { - const newMode = this._transformControls.mode || 'translate'; - if (this.state.transformMode !== newMode) { - this.setState({ transformMode: newMode }); + document.addEventListener('keydown', event => { + if (event.key === 'r') { + const newMode = this._transformControls.mode || 'translate'; + if (this.state.transformMode !== newMode) { + this.setState({ transformMode: newMode }); + } } }); } @@ -189,6 +191,18 @@ export class MainView extends React.Component { this._mainViewModel.renderSignal.disconnect(this._requestRender, this); this._mainViewModel.workerBusy.disconnect(this._workerBusyHandler, this); this._mainViewModel.dispose(); + // Add event listener for keydown and keyup to enable/disable rotation snapping + document.addEventListener('keydown', event => { + if (event.key === 'Control') { + this._transformControls.rotationSnap = THREE.MathUtils.degToRad(10); + } + }); + + document.addEventListener('keyup', event => { + if (event.key === 'Control') { + this._transformControls.rotationSnap = null; + } + }); } addContextMenu = (): void => { @@ -439,18 +453,6 @@ export class MainView extends React.Component { this._transformControls.addEventListener('dragging-changed', event => { this._controls.enabled = !event.value; }); - // Add event listener for keydown and keyup to enable/disable rotation snapping - document.addEventListener('keydown', event => { - if (event.key === 'Control') { - this._transformControls.rotationSnap = THREE.MathUtils.degToRad(10); - } - }); - - document.addEventListener('keyup', event => { - if (event.key === 'Control') { - this._transformControls.rotationSnap = null; - } - }); // Update the currently transformed object in the shared model once finished moving this._transformControls.addEventListener('mouseUp', async () => { const updatedObject = this._selectedMeshes[0];