Browse Source

Update handlers in Droppable

pull/2062/head
Artur Arseniev 7 years ago
parent
commit
e15c4f4209
  1. 27
      src/utils/Droppable.js

27
src/utils/Droppable.js

@ -41,6 +41,7 @@ export default class Droppable {
sorter.endMove();
}
em.runDefault();
em.trigger('canvas:dragend', ev);
}
@ -65,11 +66,14 @@ export default class Droppable {
// as I need it for the Sorter context I will use `dragContent` or just
// any not empty element
const content = em.get('dragContent') || '<br>';
const container = canvas.getBody();
em.stopDefault();
if (em.inAbsoluteMode()) {
const wrapper = em.get('DomComponents').getWrapper();
const target = wrapper.append({})[0];
em.get('Commands').run('core:component-drag', {
event: ev,
guidesInfo: 1,
center: 1,
target,
@ -78,12 +82,10 @@ export default class Droppable {
const comp = wrapper.append(content)[0];
const { left, top, position } = target.getStyle();
comp.setStyle({ left, top, position });
em.setSelected(comp);
this.handleDragEnd(comp, dt);
}
target.remove();
},
event: ev
}
});
} else {
this.sorter = new utils.Sorter({
@ -92,18 +94,12 @@ export default class Droppable {
nested: 1,
canvasRelative: 1,
direction: 'a',
container: canvas.getBody(),
container,
placer: canvas.getPlacerEl(),
eventMoving: 'mousemove dragover',
containerSel: '*',
itemSel: '*',
pfx: 'gjs-',
onStart: () => em.stopDefault(),
onEndMove: model => {
em.runDefault();
em.set('dragResult', model);
model && em.trigger('canvas:drop', dt, model);
},
onEndMove: model => this.handleDragEnd(model, dt),
document: canvas.getFrameEl().contentDocument
});
this.sorter.setDropContent(content);
@ -113,6 +109,13 @@ export default class Droppable {
em.trigger('canvas:dragenter', dt, content);
}
handleDragEnd(model, dt) {
if (!model) return;
const { em } = this;
em.set('dragResult', model);
em.trigger('canvas:drop', dt, model);
}
/**
* Always need to have this handler active for enabling the drop
* @param {Event} ev

Loading…
Cancel
Save