From d2864a66303dcf16db3a45d61142512cb3657c80 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 10 Jun 2018 00:03:01 +0200 Subject: [PATCH] Update structure navigation commands --- src/commands/view/ComponentEnter.js | 2 +- src/commands/view/ComponentExit.js | 2 +- src/commands/view/ComponentNext.js | 2 +- src/commands/view/ComponentPrev.js | 2 +- src/dom_components/view/ComponentTextView.js | 1 + src/editor/model/Editor.js | 10 ++++++++++ 6 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/commands/view/ComponentEnter.js b/src/commands/view/ComponentEnter.js index a06efae09..675efc4a4 100644 --- a/src/commands/view/ComponentEnter.js +++ b/src/commands/view/ComponentEnter.js @@ -1,6 +1,6 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus()) return; + if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentExit.js b/src/commands/view/ComponentExit.js index d13328704..517d1d4d4 100644 --- a/src/commands/view/ComponentExit.js +++ b/src/commands/view/ComponentExit.js @@ -1,6 +1,6 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus()) return; + if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentNext.js b/src/commands/view/ComponentNext.js index f47ea4d5b..0a18824fe 100644 --- a/src/commands/view/ComponentNext.js +++ b/src/commands/view/ComponentNext.js @@ -1,6 +1,6 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus()) return; + if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/commands/view/ComponentPrev.js b/src/commands/view/ComponentPrev.js index 47c57150d..09202d427 100644 --- a/src/commands/view/ComponentPrev.js +++ b/src/commands/view/ComponentPrev.js @@ -1,6 +1,6 @@ module.exports = { run(ed) { - if (!ed.Canvas.hasFocus()) return; + if (!ed.Canvas.hasFocus() || ed.getModel().isEditing()) return; const toSelect = []; ed.getSelectedAll().forEach(component => { diff --git a/src/dom_components/view/ComponentTextView.js b/src/dom_components/view/ComponentTextView.js index 0f1295efe..f316bbda6 100644 --- a/src/dom_components/view/ComponentTextView.js +++ b/src/dom_components/view/ComponentTextView.js @@ -120,6 +120,7 @@ module.exports = ComponentView.extend({ toggleEvents(enable) { var method = enable ? 'on' : 'off'; const mixins = { on, off }; + this.em.setEditing(enable); // The ownerDocument is from the frame var elDocs = [this.el.ownerDocument, document]; diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index a7c8d3d82..27494c4f3 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -38,6 +38,7 @@ const $ = Backbone.$; module.exports = Backbone.Model.extend({ defaults() { return { + editing: 0, selected: new Collection(), clipboard: null, designerMode: false, @@ -608,6 +609,15 @@ module.exports = Backbone.Model.extend({ .attr(this.attrsOrig); }, + setEditing(value) { + this.set('editing', value); + return this; + }, + + isEditing() { + return !!this.get('editing'); + }, + /** * Set/get data from the HTMLElement * @param {HTMLElement} el