From a26cf1ce3b1b4ddccd5280fa0875296d2e5101dc Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Tue, 19 Jan 2021 22:07:43 +0000 Subject: [PATCH] feat(viewer): selection utils: esc clears selection --- packages/viewer/example/demo.js | 2 ++ packages/viewer/src/modules/SelectionHelper.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/viewer/example/demo.js b/packages/viewer/example/demo.js index 1b7b0b6d5..8e810d8d6 100644 --- a/packages/viewer/example/demo.js +++ b/packages/viewer/example/demo.js @@ -1427,6 +1427,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g * - Clicking on one object will select it. * - Double clicking on one object will focus on it. * - Double clicking anywhere else will focus the scene. + * - Pressing escape will clear any selection present. * TODOs: * - Ensure clipped geometry is not selected. * - When objects are disposed, ensure selection is reset. @@ -1514,6 +1515,7 @@ var SelectionHelper = /*#__PURE__*/function (_EventEmitter) { document.addEventListener('keydown', e => { if (e.isComposing || e.keyCode === 229) return; if (e.key === 'Shift') _this.multiSelect = true; + if (e.key === 'Escape') _this.unselect(); }); document.addEventListener('keyup', e => { if (e.isComposing || e.keyCode === 229) return; diff --git a/packages/viewer/src/modules/SelectionHelper.js b/packages/viewer/src/modules/SelectionHelper.js index db7cb779c..3153a07af 100644 --- a/packages/viewer/src/modules/SelectionHelper.js +++ b/packages/viewer/src/modules/SelectionHelper.js @@ -8,6 +8,7 @@ import EventEmitter from './EventEmitter' * - Clicking on one object will select it. * - Double clicking on one object will focus on it. * - Double clicking anywhere else will focus the scene. + * - Pressing escape will clear any selection present. * TODOs: * - Ensure clipped geometry is not selected. * - When objects are disposed, ensure selection is reset. @@ -71,6 +72,7 @@ export default class SelectionHelper extends EventEmitter { document.addEventListener( 'keydown', ( e ) => { if ( e.isComposing || e.keyCode === 229 ) return if ( e.key === 'Shift' ) this.multiSelect = true + if ( e.key === 'Escape' ) this.unselect( ) } ) document.addEventListener( 'keyup', ( e ) => { if ( e.isComposing || e.keyCode === 229 ) return