From a7573106a6fed92615e6db913928b50bdd1f1ba5 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Mon, 14 Sep 2020 13:58:00 +0200 Subject: [PATCH] Avoid dragging in canvas non-draggable components. Fixes #3014 --- src/dom_components/view/ComponentView.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/dom_components/view/ComponentView.js b/src/dom_components/view/ComponentView.js index 68ba1f9f4..61f82d238 100644 --- a/src/dom_components/view/ComponentView.js +++ b/src/dom_components/view/ComponentView.js @@ -51,12 +51,18 @@ export default Backbone.View.extend({ this.initComponents({ avoidRender: 1 }); this.events = { ...this.events, - ...(draggableComponents && { dragstart: 'handleDragStart' }) + ...(this.__isDraggable() && { dragstart: 'handleDragStart' }) }; this.delegateEvents(); !modelOpt.temporary && this.init(this._clbObj()); }, + __isDraggable() { + const { model, config } = this; + const { _innertext, draggable } = model.attributes; + return config.draggableComponents && draggable && !_innertext; + }, + _clbObj() { const { em, model, el } = this; return { @@ -290,12 +296,11 @@ export default Backbone.View.extend({ updateAttributes() { const attrs = []; const { model, $el, el, config } = this; - const { highlightable, textable, type, _innertext } = model.attributes; - const { draggableComponents } = config; + const { highlightable, textable, type } = model.attributes; const defaultAttr = { 'data-gjs-type': type || 'default', - ...(draggableComponents && !_innertext ? { draggable: true } : {}), + ...(this.__isDraggable() ? { draggable: true } : {}), ...(highlightable ? { 'data-highlightable': 1 } : {}), ...(textable ? {