diff --git a/src/commands/index.js b/src/commands/index.js index 75ee63637..a2686bf2f 100644 --- a/src/commands/index.js +++ b/src/commands/index.js @@ -129,6 +129,7 @@ export default () => { const defComOptions = { preserveSelected: 1 }; const modes = ['absolute', 'translate']; const hideTlb = () => em.stopDefault(defComOptions); + selAll.forEach(sel => sel.trigger('disable')); // Dirty patch to prevent parent selection on drop (in absolute mode) em.set('_cmpDrag', 1); diff --git a/src/dom_components/view/ComponentTextView.js b/src/dom_components/view/ComponentTextView.js index e4291e6cf..e8a66ef7a 100644 --- a/src/dom_components/view/ComponentTextView.js +++ b/src/dom_components/view/ComponentTextView.js @@ -48,6 +48,10 @@ export default ComponentView.extend({ this.toggleEvents(1); }, + onDisable() { + this.disableEditing(); + }, + /** * Disable element content editing * @private diff --git a/src/dom_components/view/ComponentView.js b/src/dom_components/view/ComponentView.js index 5a417ca7f..2eef72f4c 100644 --- a/src/dom_components/view/ComponentView.js +++ b/src/dom_components/view/ComponentView.js @@ -38,6 +38,7 @@ export default Backbone.View.extend({ this.listenTo(model, 'change:content', this.updateContent); this.listenTo(model, 'change', this.handleChange); this.listenTo(model, 'active', this.onActive); + this.listenTo(model, 'disable', this.onDisable); $el.data('model', model); model.view = this; this.initClasses(); @@ -74,6 +75,11 @@ export default Backbone.View.extend({ */ onActive() {}, + /** + * Callback executed when the `disable` event is triggered on component + */ + onDisable() {}, + remove() { Backbone.View.prototype.remove.apply(this, arguments); this.removed(this._clbObj());