mirror of
https://github.com/mathuo/dockview
synced 2025-02-13 11:55:45 +00:00
Merge pull request #586 from mathuo/585-add-panel-event-unintentially-called-when-adding-floating-panel
bug: prevent unintential add_panel event
This commit is contained in:
commit
2a3f623c30
@ -5279,4 +5279,56 @@ describe('dockviewComponent', () => {
|
|||||||
expect(api.activePanel).toBe(panel1);
|
expect(api.activePanel).toBe(panel1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('events flow', () => {
|
||||||
|
test('that floating a panel should not call an additional addPanel event', () => {
|
||||||
|
const container = document.createElement('div');
|
||||||
|
|
||||||
|
const dockview = new DockviewComponent({
|
||||||
|
parentElement: container,
|
||||||
|
createComponent(options) {
|
||||||
|
switch (options.name) {
|
||||||
|
case 'default':
|
||||||
|
return new PanelContentPartTest(
|
||||||
|
options.id,
|
||||||
|
options.name
|
||||||
|
);
|
||||||
|
default:
|
||||||
|
throw new Error(`unsupported`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const api = new DockviewApi(dockview);
|
||||||
|
|
||||||
|
dockview.layout(1000, 1000);
|
||||||
|
|
||||||
|
let addPanelCount = 0;
|
||||||
|
let addGroupCount = 0;
|
||||||
|
|
||||||
|
api.onDidAddPanel((event) => {
|
||||||
|
addPanelCount++;
|
||||||
|
});
|
||||||
|
api.onDidAddGroup((event) => {
|
||||||
|
addGroupCount++;
|
||||||
|
});
|
||||||
|
|
||||||
|
api.addPanel({
|
||||||
|
id: 'panel_1',
|
||||||
|
component: 'default',
|
||||||
|
});
|
||||||
|
const panel2 = api.addPanel({
|
||||||
|
id: 'panel_2',
|
||||||
|
component: 'default',
|
||||||
|
position: { referencePanel: 'panel_1' },
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(addPanelCount).toBe(2);
|
||||||
|
expect(addGroupCount).toBe(1);
|
||||||
|
|
||||||
|
api.addFloatingGroup(panel2);
|
||||||
|
|
||||||
|
expect(addPanelCount).toBe(2);
|
||||||
|
expect(addGroupCount).toBe(2);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -857,7 +857,9 @@ export class DockviewComponent
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
group.model.openPanel(item, { skipSetGroupActive: true });
|
this.movingLock(() =>
|
||||||
|
group.model.openPanel(item, { skipSetGroupActive: true })
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
group = item;
|
group = item;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user