Skip to content

Commit bdf81fd

Browse files
committed
Merge branch 'master' of https://github.com/mathuo/dockview
2 parents 491872e + cd7984c commit bdf81fd

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5052,8 +5052,13 @@ describe('dockviewComponent', () => {
50525052
component: 'default',
50535053
});
50545054

5055-
await dockview.addPopoutGroup(panel2);
5055+
const panel3 = dockview.addPanel({
5056+
id: 'panel_3',
5057+
component: 'default',
5058+
renderer: 'always',
5059+
});
50565060

5061+
await dockview.addPopoutGroup(panel2);
50575062
panel2.api.moveTo({ group: panel1.api.group, position: 'right' });
50585063

50595064
// confirm panel is rendered on DOM
@@ -5062,6 +5067,22 @@ describe('dockviewComponent', () => {
50625067
'.dv-content-container > .testpanel-panel_2'
50635068
).length
50645069
).toBe(1);
5070+
5071+
await dockview.addPopoutGroup(panel3);
5072+
panel3.api.moveTo({ group: panel1.api.group, position: 'right' });
5073+
5074+
// confirm panel is rendered to always overlay container
5075+
expect(
5076+
dockview.element.querySelectorAll(
5077+
'.dv-render-overlay > .testpanel-panel_3'
5078+
).length
5079+
).toBe(1);
5080+
expect(
5081+
panel2.group.element.querySelectorAll(
5082+
'.dv-content-container > .testpanel-panel_3'
5083+
).length
5084+
).toBe(0);
5085+
expect(dockview.element);
50655086
});
50665087

50675088
test('move popout group of 1 panel inside grid', async () => {

packages/dockview-core/src/dockview/dockviewComponent.ts

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -577,11 +577,6 @@ export class DockviewComponent
577577
this.updateWatermark();
578578
}
579579

580-
override dispose(): void {
581-
this.clear(); // explicitly clear the layout before cleaning up
582-
super.dispose();
583-
}
584-
585580
override setVisible(panel: DockviewGroupPanel, visible: boolean): void {
586581
switch (panel.api.location.type) {
587582
case 'grid':
@@ -847,32 +842,31 @@ export class DockviewComponent
847842
});
848843
}
849844
} else if (this.getPanel(group.id)) {
850-
const removedGroup = group;
845+
group.model.renderContainer =
846+
this.overlayRenderContainer;
847+
returnedGroup = group;
851848

852849
if (floatingBox) {
853-
this.addFloatingGroup(removedGroup, {
850+
this.addFloatingGroup(group, {
854851
height: floatingBox.height,
855852
width: floatingBox.width,
856853
position: floatingBox,
857854
});
858855
} else {
859-
this.doRemoveGroup(removedGroup, {
856+
this.doRemoveGroup(group, {
860857
skipDispose: true,
861858
skipActive: true,
862859
skipPopoutReturn: true,
863860
});
864861

865-
removedGroup.model.renderContainer =
866-
this.overlayRenderContainer;
867-
removedGroup.model.location = { type: 'grid' };
868-
returnedGroup = removedGroup;
862+
group.model.location = { type: 'grid' };
869863

870864
this.movingLock(() => {
871865
// suppress group add events since the group already exists
872-
this.doAddGroup(removedGroup, [0]);
866+
this.doAddGroup(group, [0]);
873867
});
874868
}
875-
this.doSetGroupAndPanelActive(removedGroup);
869+
this.doSetGroupAndPanelActive(group);
876870
}
877871
})
878872
);

0 commit comments

Comments
 (0)