diff --git a/src/dom_components/index.ts b/src/dom_components/index.ts index 4eddb335e..6876afdfc 100644 --- a/src/dom_components/index.ts +++ b/src/dom_components/index.ts @@ -646,7 +646,10 @@ export default class ComponentManager extends ItemManagerModule { } } - if (!droppable) return { ...result, reason: 2 }; + // Ensure the target is not inside the source + const isTargetInside = [target].concat(target.parents()).indexOf(srcModel) > -1; + + if (!droppable || isTargetInside) return { ...result, reason: 2 }; return { ...result, result: true }; } diff --git a/src/dom_components/model/Component.js b/src/dom_components/model/Component.js index da9699513..3b71c38f0 100644 --- a/src/dom_components/model/Component.js +++ b/src/dom_components/model/Component.js @@ -1052,7 +1052,7 @@ export default class Component extends StyleableModel { /** * Return all parents of the component. - * @returns {Array<[Component]>} + * @returns {Array} */ parents() { const parent = this.parent();