From ab5bf2009d8108f893f1ebc5a4e352a1f58ad775 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 29 Nov 2020 18:07:40 +0100 Subject: [PATCH 1/4] Ensure selectors in CssRule --- src/css_composer/model/CssRule.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/css_composer/model/CssRule.js b/src/css_composer/model/CssRule.js index 973902de6..f99e44067 100644 --- a/src/css_composer/model/CssRule.js +++ b/src/css_composer/model/CssRule.js @@ -55,12 +55,18 @@ export default Backbone.Model.extend(Styleable).extend({ ensureSelectors() { const { em } = this; - const result = []; const sm = em && em.get('SelectorManager'); - const selectors = this.getSelectors(); - const toInit = Array.isArray(selectors); - selectors.forEach(sel => result.push(sm ? sm.add(sel) : sel)); - toInit && this.set('selectors', new Selectors(result)); + const toListen = [this, 'change:selectors', this.ensureSelectors]; + let sels = this.getSelectors(); + this.stopListening(...toListen); + + if (Array.isArray(sels)) { + const res = sels.filter(i => i).map(i => (sm ? sm.add(i) : i)); + sels = new Selectors(res); + } + + this.set('selectors', sels); + this.listenTo(...toListen); }, /** From 0f85810b65196ca0473eb2bded28c9939a0fedea Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 29 Nov 2020 18:24:14 +0100 Subject: [PATCH 2/4] Fix esnureSelectors in CssRule --- src/css_composer/model/CssRule.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/css_composer/model/CssRule.js b/src/css_composer/model/CssRule.js index f99e44067..b08a5f331 100644 --- a/src/css_composer/model/CssRule.js +++ b/src/css_composer/model/CssRule.js @@ -60,6 +60,10 @@ export default Backbone.Model.extend(Styleable).extend({ let sels = this.getSelectors(); this.stopListening(...toListen); + if (sels.models) { + sels = [...sels.models]; + } + if (Array.isArray(sels)) { const res = sels.filter(i => i).map(i => (sm ? sm.add(i) : i)); sels = new Selectors(res); From 3f369a69532563301154f7c3d704dd68ead01685 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 29 Nov 2020 18:30:39 +0100 Subject: [PATCH 3/4] Add log info --- src/css_composer/model/CssRules.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/css_composer/model/CssRules.js b/src/css_composer/model/CssRules.js index 61fbd6dcc..99309ab4b 100644 --- a/src/css_composer/model/CssRules.js +++ b/src/css_composer/model/CssRules.js @@ -16,7 +16,7 @@ export default Backbone.Collection.extend({ }, onAdd(model) { - model.ensureSelectors(); + model.ensureSelectors(); // required for undo }, onRemove(removed) { From 6c0e415dbd974a490449ae3ea992ba9c57504830 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 29 Nov 2020 20:14:37 +0100 Subject: [PATCH 4/4] Force to hide toolbars when requested --- src/commands/view/SelectComponent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/view/SelectComponent.js b/src/commands/view/SelectComponent.js index f46b46aba..e4172d09d 100644 --- a/src/commands/view/SelectComponent.js +++ b/src/commands/view/SelectComponent.js @@ -731,9 +731,9 @@ export default { stop(ed, sender, opts = {}) { const { em, editor } = this; + this.onHovered(); // force to hide toolbar this.stopSelectComponent(); !opts.preserveSelected && em.setSelected(null); - this.onOut(); this.toggleToolsEl(); editor && editor.stopCommand('resize'); }