|
|
@ -292,23 +292,30 @@ export default { |
|
|
if (em.get('_cmpDrag')) return em.set('_cmpDrag'); |
|
|
if (em.get('_cmpDrag')) return em.set('_cmpDrag'); |
|
|
|
|
|
|
|
|
const el = ev.target as HTMLElement; |
|
|
const el = ev.target as HTMLElement; |
|
|
let model = getComponentModel(el); |
|
|
let cmp = getComponentModel(el); |
|
|
|
|
|
|
|
|
if (!model) { |
|
|
if (!cmp) { |
|
|
let parentEl = el.parentNode; |
|
|
let parentEl = el.parentNode; |
|
|
|
|
|
|
|
|
while (!model && parentEl && !isDoc(parentEl)) { |
|
|
while (!cmp && parentEl && !isDoc(parentEl)) { |
|
|
model = getComponentModel(parentEl); |
|
|
cmp = getComponentModel(parentEl); |
|
|
parentEl = parentEl.parentNode; |
|
|
parentEl = parentEl.parentNode; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (model) { |
|
|
if (cmp) { |
|
|
// Avoid selection of inner text components during editing
|
|
|
if ( |
|
|
if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) { |
|
|
em.isEditing() && |
|
|
|
|
|
// Avoid selection of inner text components during editing
|
|
|
|
|
|
((!cmp.get('textable') && cmp.isChildOf('text')) || |
|
|
|
|
|
// Prevents selecting another component if the pointer was pressed and
|
|
|
|
|
|
// dragged outside of the editing component
|
|
|
|
|
|
em.getEditing() !== cmp) |
|
|
|
|
|
) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
this.select(model, ev); |
|
|
|
|
|
|
|
|
this.select(cmp, ev); |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|