Browse Source

Properly remove editor toolbars when a Component is removed. Fixes #3175

pull/3217/head
Artur Arseniev 5 years ago
parent
commit
c78c52ddc1
  1. 2
      src/commands/view/SelectComponent.js
  2. 1
      src/dom_components/model/Components.js
  3. 3
      src/dom_components/view/ComponentTextView.js

2
src/commands/view/SelectComponent.js

@ -88,7 +88,7 @@ export default {
};
methods[method](window, 'resize', this.onFrameUpdated);
methods[method](listenToEl, 'scroll', this.onContainerChange);
em[method]('component:toggled', this.onSelect, this);
em[method]('component:toggled component:remove', this.onSelect, this);
em[method]('change:componentHovered', this.onHovered, this);
em[method](
'component:resize component:styleUpdate component:input',

1
src/dom_components/model/Components.js

@ -86,6 +86,7 @@ export default Backbone.Collection.extend({
const optStyle = { target: removed };
hasSign && cm.run('core:component-style-clear', optStyle);
removed.removed();
removed.trigger('removed');
em.trigger('component:remove', removed);
}

3
src/dom_components/view/ComponentTextView.js

@ -164,7 +164,7 @@ export default ComponentView.extend({
* @param {Boolean} enable
*/
toggleEvents(enable) {
const { em } = this;
const { em, model } = this;
const mixins = { on, off };
const method = enable ? 'on' : 'off';
em.setEditing(enable);
@ -175,6 +175,7 @@ export default ComponentView.extend({
mixins.off(elDocs, 'mousedown', this.disableEditing);
mixins[method](elDocs, 'mousedown', this.disableEditing);
em[method]('toolbar:run:before', this.disableEditing);
model[method]('removed', this.disableEditing);
// Avoid closing edit mode on component click
this.$el.off('mousedown', this.disablePropagation);

Loading…
Cancel
Save