Browse Source

fix: support multiple selection in drag event handling for move command

carlos/645-absolute-mode-enhancements
Carlos 10 months ago
parent
commit
c61e8f87de
  1. 22
      packages/core/src/dom_components/model/Component.ts

22
packages/core/src/dom_components/model/Component.ts

@ -1147,16 +1147,18 @@ export default class Component extends StyleableModel<ComponentProperties> {
attributes: { class: `${ppfx}no-touch-actions`, draggable: true },
label: em.getIcon('move'),
command: (ed) => {
// tld-move event needs to be called with a target and a drag event
const target = ed.getSelected();
const rect = target?.view?.el.getBoundingClientRect();
const clientX = rect ? rect.left + rect.width / 2 : 0;
const clientY = rect ? rect.top + rect.height / 2 : 0;
// TODO: support multiple selection
ed.runCommand('tlb-move', {
target,
event: new DragEvent('dragstart', { clientX, clientY }),
const targets = ed.getSelectedAll();
targets.forEach((target) => {
const rect = target?.view?.el.getBoundingClientRect();
const clientX = rect ? rect.left + rect.width / 2 : 0;
const clientY = rect ? rect.top + rect.height / 2 : 0;
// tld-move event needs to be called with a target and a drag event
ed.runCommand('tlb-move', {
target,
event: new DragEvent('dragstart', { clientX, clientY }),
});
});
},
});

Loading…
Cancel
Save