From 81fba33d191e1ae4f2c2213d76a9240ae3cf8233 Mon Sep 17 00:00:00 2001 From: artf Date: Fri, 30 Nov 2018 17:33:17 +0100 Subject: [PATCH] Don't remove focused elements on delete key. Fixes #1606 --- src/commands/view/ComponentDelete.js | 2 +- src/commands/view/ComponentEnter.js | 7 ++++++- src/commands/view/ComponentExit.js | 7 ++++++- src/commands/view/ComponentNext.js | 7 ++++++- src/commands/view/ComponentPrev.js | 7 ++++++- src/commands/view/CopyComponent.js | 2 +- src/commands/view/PasteComponent.js | 2 +- 7 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/commands/view/ComponentDelete.js b/src/commands/view/ComponentDelete.js index b00f60d11..2fc73c033 100644 --- a/src/commands/view/ComponentDelete.js +++ b/src/commands/view/ComponentDelete.js @@ -2,7 +2,7 @@ import { isArray } from 'underscore'; module.exports = { run(ed, sender, opts = {}) { - if (ed.getModel().isEditing()) return; + if (ed.getModel().isEditing() || ed.Canvas.isInputFocused()) return; let components = opts.component || ed.getSelectedAll(); components = isArray(components) ? [...components] : [components]; diff --git a/src/commands/view/ComponentEnter.js b/src/commands/view/ComponentEnter.js index 675efc4a4..3f1a9bc3b 100644 --- a/src/commands/view/ComponentEnter.js +++ b/src/commands/view/ComponentEnter.js @@ -1,6 +1,11 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; + if ( + !ed.Canvas.hasFocus() || + ed.getModel().isEditing() || + ed.Canvas.isInputFocused() + ) + return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentExit.js b/src/commands/view/ComponentExit.js index 517d1d4d4..0dff37e03 100644 --- a/src/commands/view/ComponentExit.js +++ b/src/commands/view/ComponentExit.js @@ -1,6 +1,11 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; + if ( + !ed.Canvas.hasFocus() || + ed.getModel().isEditing() || + ed.Canvas.isInputFocused() + ) + return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentNext.js b/src/commands/view/ComponentNext.js index 0a18824fe..c0af4744d 100644 --- a/src/commands/view/ComponentNext.js +++ b/src/commands/view/ComponentNext.js @@ -1,6 +1,11 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; + if ( + !ed.Canvas.hasFocus() || + ed.getModel().isEditing() || + ed.Canvas.isInputFocused() + ) + return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentPrev.js b/src/commands/view/ComponentPrev.js index 09202d427..0fe40ebcb 100644 --- a/src/commands/view/ComponentPrev.js +++ b/src/commands/view/ComponentPrev.js @@ -1,6 +1,11 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; + if ( + !ed.Canvas.hasFocus() || + ed.getModel().isEditing() || + ed.Canvas.isInputFocused() + ) + return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/CopyComponent.js b/src/commands/view/CopyComponent.js index 53f09822b..c26cd1ecb 100644 --- a/src/commands/view/CopyComponent.js +++ b/src/commands/view/CopyComponent.js @@ -3,7 +3,7 @@ module.exports = { const em = ed.getModel(); const models = [...ed.getSelectedAll()]; - if (models.length && !em.isEditing()) { + if (models.length && !em.isEditing() && !ed.Canvas.isInputFocused()) { em.set('clipboard', models); } } diff --git a/src/commands/view/PasteComponent.js b/src/commands/view/PasteComponent.js index 5c7c13bd3..3a127099d 100644 --- a/src/commands/view/PasteComponent.js +++ b/src/commands/view/PasteComponent.js @@ -6,7 +6,7 @@ module.exports = { const clp = em.get('clipboard'); const selected = ed.getSelected(); - if (clp && selected && !em.isEditing()) { + if (clp && selected && !em.isEditing() && !ed.Canvas.isInputFocused()) { ed.getSelectedAll().forEach(comp => { if (!comp) return; const coll = comp.collection;