diff --git a/src/canvas/index.js b/src/canvas/index.js index 4ee286f99..a14aad27c 100644 --- a/src/canvas/index.js +++ b/src/canvas/index.js @@ -349,6 +349,14 @@ module.exports = () => { }; }, + /** + * Check if the canvas is focused + * @return {Boolean} + */ + hasFocus() { + return this.getDocument().hasFocus(); + }, + /** * Detects if some input is focused (input elements, text components, etc.) * Used internally, for example, to avoid undo/redo in text editing mode diff --git a/src/commands/view/ComponentEnter.js b/src/commands/view/ComponentEnter.js index be29edc51..a06efae09 100644 --- a/src/commands/view/ComponentEnter.js +++ b/src/commands/view/ComponentEnter.js @@ -1,5 +1,6 @@ module.exports = { run(ed) { + if (!ed.Canvas.hasFocus()) return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentExit.js b/src/commands/view/ComponentExit.js index cbf0a2634..d13328704 100644 --- a/src/commands/view/ComponentExit.js +++ b/src/commands/view/ComponentExit.js @@ -1,5 +1,6 @@ module.exports = { run(ed) { + if (!ed.Canvas.hasFocus()) return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentNext.js b/src/commands/view/ComponentNext.js index 0f89b8906..f47ea4d5b 100644 --- a/src/commands/view/ComponentNext.js +++ b/src/commands/view/ComponentNext.js @@ -1,5 +1,6 @@ module.exports = { run(ed) { + if (!ed.Canvas.hasFocus()) return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentPrev.js b/src/commands/view/ComponentPrev.js index f83e40caf..47c57150d 100644 --- a/src/commands/view/ComponentPrev.js +++ b/src/commands/view/ComponentPrev.js @@ -1,5 +1,6 @@ module.exports = { run(ed) { + if (!ed.Canvas.hasFocus()) return; const toSelect = []; ed.getSelectedAll().forEach(component => {