MCPcopy
hub / github.com/wavetermdev/waveterm / setTabViewIntoWindow

Method setTabViewIntoWindow

emain/emain-window.ts:460–493  ·  view source on GitHub ↗
(tabView: WaveTabView, tabInitialized: boolean, primaryStartupTab = false)

Source from the content-addressed store, hash-verified

458 }
459
460 private async setTabViewIntoWindow(tabView: WaveTabView, tabInitialized: boolean, primaryStartupTab = false) {
461 if (this.activeTabView == tabView) {
462 return;
463 }
464 const oldActiveView = this.activeTabView;
465 tabView.isActiveTab = true;
466 if (oldActiveView != null) {
467 oldActiveView.isActiveTab = false;
468 }
469 this.activeTabView = tabView;
470 this.allLoadedTabViews.set(tabView.waveTabId, tabView);
471 if (!tabInitialized) {
472 console.log("initializing a new tab", primaryStartupTab ? "(primary startup)" : "");
473 await this.initializeTab(tabView, primaryStartupTab);
474 this.finalizePositioning();
475 } else {
476 console.log("reusing an existing tab, calling wave-init", tabView.waveTabId);
477 tabView.webContents.send("wave-init", tabView.savedInitOpts); // reinit
478 this.finalizePositioning();
479 }
480
481 // something is causing the new tab to lose focus so it requires manual refocusing
482 tabView.webContents.focus();
483 setTimeout(() => {
484 if (tabView.webContents && this.activeTabView == tabView && !tabView.webContents.isFocused()) {
485 tabView.webContents.focus();
486 }
487 }, 10);
488 setTimeout(() => {
489 if (tabView.webContents && this.activeTabView == tabView && !tabView.webContents.isFocused()) {
490 tabView.webContents.focus();
491 }
492 }, 30);
493 }
494
495 private finalizePositioning() {
496 if (this.isDestroyed()) {

Callers 1

processActionQueueMethod · 0.95

Calls 3

initializeTabMethod · 0.95
finalizePositioningMethod · 0.95
setMethod · 0.80

Tested by

no test coverage detected