fix selecting text containers and containing frames together

This commit is contained in:
Ryan Di 2025-04-03 15:52:00 +11:00
parent 57b4a098f3
commit 7a9df73e0b

View file

@ -96,15 +96,6 @@ export class LassoTrail extends AnimatedTrail {
for (const [id] of Object.entries(nextSelectedElementIds)) {
const element = this.app.scene.getNonDeletedElement(id);
if (element && isFrameLikeElement(element)) {
const elementsInFrame = getFrameChildren(
this.app.scene.getNonDeletedElementsMap(),
element.id,
);
for (const child of elementsInFrame) {
delete nextSelectedElementIds[child.id];
}
}
if (element && isTextElement(element)) {
const container = getContainerElement(
@ -118,6 +109,21 @@ export class LassoTrail extends AnimatedTrail {
}
}
// remove all children of selected frames
for (const [id] of Object.entries(nextSelectedElementIds)) {
const element = this.app.scene.getNonDeletedElement(id);
if (element && isFrameLikeElement(element)) {
const elementsInFrame = getFrameChildren(
this.app.scene.getNonDeletedElementsMap(),
element.id,
);
for (const child of elementsInFrame) {
delete nextSelectedElementIds[child.id];
}
}
}
const nextSelection = selectGroupsForSelectedElements(
{
editingGroupId: prevState.editingGroupId,