split window WIP

This commit is contained in:
zadam 2021-05-19 23:00:03 +02:00
parent b7bd5396d1
commit a3847842cb
2 changed files with 29 additions and 5 deletions

View File

@ -16,15 +16,33 @@ export default class PaneContainer extends FlexContainer {
this.css('flex-grow', '1');
}
doRender() {
super.doRender();
this.$widget.find("div").on("click", () => {
const activeTabContext = appContext.tabManager.getActiveTabContext();
const tabId = activeTabContext.parentTabId || activeTabContext.tabId;
appContext.tabManager.activateTab(tabId);
});
}
async openNewPaneCommand() {
const newWidget = this.widgetFactory();
this.$widget.append(newWidget.render());
const $rendered = newWidget.render();
this.$widget.append($rendered);
const tabContext = new TabContext();
appContext.tabManager.tabContexts.push(tabContext);
appContext.tabManager.child(tabContext);
$rendered.on('click', () => {
appContext.tabManager.activateTab(tabContext.tabId);
});
tabContext.parentTabId = appContext.tabManager.getActiveTabContext().tabId;
await newWidget.handleEvent('setTabContext', { tabContext });

View File

@ -427,12 +427,16 @@ export default class TabRowWidget extends BasicWidget {
}
activeTabChangedEvent() {
const activeTabContext = appContext.tabManager.getActiveTabContext();
let activeTabContext = appContext.tabManager.getActiveTabContext();
if (!activeTabContext) {
return;
}
if (activeTabContext.parentTabId) {
activeTabContext = appContext.tabManager.getTabContextById(activeTabContext.parentTabId);
}
const tabEl = this.getTabById(activeTabContext.tabId)[0];
const activeTabEl = this.activeTabEl;
if (activeTabEl === tabEl) return;
@ -441,7 +445,9 @@ export default class TabRowWidget extends BasicWidget {
}
newTabOpenedEvent({tabContext}) {
this.addTab(tabContext.tabId);
if (!tabContext.parentId) {
this.addTab(tabContext.tabId);
}
}
removeTab(tabId) {
@ -606,11 +612,11 @@ export default class TabRowWidget extends BasicWidget {
tabNoteSwitchedAndActivatedEvent({tabContext}) {
this.activeTabChangedEvent();
this.updateTabById(tabContext.tabId);
this.updateTabById(tabContext.parentTabId || tabContext.tabId);
}
tabNoteSwitchedEvent({tabContext}) {
this.updateTabById(tabContext.tabId);
this.updateTabById(tabContext.parentTabId || tabContext.tabId);
}
updateTabById(tabId) {