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'); 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() { async openNewPaneCommand() {
const newWidget = this.widgetFactory(); const newWidget = this.widgetFactory();
this.$widget.append(newWidget.render()); const $rendered = newWidget.render();
this.$widget.append($rendered);
const tabContext = new TabContext(); const tabContext = new TabContext();
appContext.tabManager.tabContexts.push(tabContext); appContext.tabManager.tabContexts.push(tabContext);
appContext.tabManager.child(tabContext); appContext.tabManager.child(tabContext);
$rendered.on('click', () => {
appContext.tabManager.activateTab(tabContext.tabId);
});
tabContext.parentTabId = appContext.tabManager.getActiveTabContext().tabId; tabContext.parentTabId = appContext.tabManager.getActiveTabContext().tabId;
await newWidget.handleEvent('setTabContext', { tabContext }); await newWidget.handleEvent('setTabContext', { tabContext });

View File

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