Skip to content

Commit b821356

Browse files
committed
feat: Disable opening link on split view if the limit is reached, b=(no-bug), c=common, split-view
1 parent 4d27f9d commit b821356

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/zen/common/ZenSessionStore.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
}
8888

8989
async #waitAndCleanup() {
90-
await SessionStore.promiseInitialized;
90+
await SessionStore.promiseAllWindowsRestored;
9191
await this.#resolveGlanceTabs();
9292
this.#cleanup();
9393
}

src/zen/split-view/ZenViewSplitter.mjs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,6 +1151,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
11511151
this.tabBrowserPanel.removeAttribute('zen-split-view');
11521152
this.currentView = -1;
11531153
this.toggleWrapperDisplay(false);
1154+
this.maybeDisableOpeningTabOnSplitView();
11541155
}
11551156

11561157
/**
@@ -1308,6 +1309,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
13081309
});
13091310
}
13101311
});
1312+
this.maybeDisableOpeningTabOnSplitView();
13111313
}
13121314

13131315
/**
@@ -1861,6 +1863,24 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
18611863
this.onLocationChange(gBrowser.selectedTab.linkedBrowser);
18621864
}
18631865
}
1866+
1867+
maybeDisableOpeningTabOnSplitView() {
1868+
document
1869+
.getElementById('cmd_zenSplitViewLinkInNewTab')
1870+
.setAttribute('disabled', !this.canOpenLinkInSplitView());
1871+
}
1872+
1873+
canOpenLinkInSplitView() {
1874+
const currentView = this.currentView;
1875+
if (currentView < 0) {
1876+
return true;
1877+
}
1878+
const group = this._data[currentView];
1879+
if (!group || group.tabs.length >= this.MAX_TABS) {
1880+
return false;
1881+
}
1882+
return true;
1883+
}
18641884
}
18651885

18661886
window.gZenViewSplitter = new ZenViewSplitter();

0 commit comments

Comments
 (0)