From 7c9c6bde3facd9fdeeb92fc5df5952bf00547a21 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Wed, 29 May 2019 08:23:43 +0200 Subject: [PATCH] Fix drag and drop from outside of the canvas --- src/utils/Sorter.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/utils/Sorter.js b/src/utils/Sorter.js index 46d7afe27..76f9839cc 100644 --- a/src/utils/Sorter.js +++ b/src/utils/Sorter.js @@ -353,6 +353,7 @@ module.exports = Backbone.View.extend({ const isTextable = src => src && target && + src.opt && src.opt.avoidChildren && this.isTextableActive(src, target); @@ -370,7 +371,8 @@ module.exports = Backbone.View.extend({ }; const tempModel = comps.add(dropContent, { ...opts, temporary: 1 }); dropModel = comps.remove(tempModel, opts); - this.dropModel = dropModel instanceof Array ? dropModel[0] : dropModel; + dropModel = dropModel instanceof Array ? dropModel[0] : dropModel; + this.dropModel = dropModel; if (isTextable(dropModel)) { return this.getSourceModel(src, { target, avoidChildren: 0 }); @@ -489,7 +491,7 @@ module.exports = Backbone.View.extend({ }, isTextableActive(src, trg) { - return src && src.get('textable') && trg && trg.is('text'); + return src && src.get && src.get('textable') && trg && trg.is('text'); }, disableTextable() { @@ -1039,7 +1041,7 @@ module.exports = Backbone.View.extend({ * @param {Object} pos Object with position coordinates * */ move(dst, src, pos) { - const { em, activeTextModel } = this; + const { em, activeTextModel, dropContent } = this; const srcEl = getElement(src); em && em.trigger('component:dragEnd:before', dst, srcEl, pos); // @depricated var warns = []; @@ -1052,7 +1054,6 @@ module.exports = Backbone.View.extend({ var draggable = validResult.draggable; var dropInfo = validResult.dropInfo; var dragInfo = validResult.dragInfo; - var dropContent = this.dropContent; const { trgModel } = validResult; droppable = trgModel instanceof Backbone.Collection ? 1 : droppable; const isTextableActive = this.isTextableActive(model, trgModel); @@ -1114,7 +1115,15 @@ module.exports = Backbone.View.extend({ } em && em.trigger('component:dragEnd', targetCollection, modelToDrop, warns); // @depricated - em && em.trigger('sorter:drag:end', targetCollection, modelToDrop, warns); + em && + em.trigger('sorter:drag:end', { + targetCollection, + modelToDrop, + warns, + validResult, + dst, + srcEl + }); return created; },