Fixed split views!

This commit is contained in:
Mauro Balades
2024-05-18 12:21:25 +02:00
parent 6fd8dc1514
commit 886406518e
7 changed files with 54 additions and 35 deletions

View File

@@ -245,7 +245,7 @@ var gZenBrowserManagerSidebar = {
let sidebar = this._openAndGetWebPanelWrapper();
for (let browser of sidebar.querySelectorAll("browser[zen-sidebar-id]")) {
browser.setAttribute("hidden", "true");
browser.browsingContext.isActive = false;
browser.docShellIsActive = false;
}
},
@@ -259,7 +259,7 @@ var gZenBrowserManagerSidebar = {
}
let existantWebview = this._getCurrentBrowser();
if (existantWebview) {
existantWebview.browsingContext.isActive = true;
existantWebview.docShellIsActive = true;
existantWebview.removeAttribute("hidden");
document.getElementById("zen-sidebar-web-panel-title").textContent = existantWebview.contentTitle;
return;
@@ -271,7 +271,7 @@ var gZenBrowserManagerSidebar = {
if (data.ua) {
browser.browsingContext.customUserAgent = this.DEFAULT_MOBILE_USER_AGENT;
}
browser.browsingContext.isActive = true;
browser.docShellIsActive = true;
},
_getWebPanelData(id) {

View File

@@ -76,19 +76,15 @@ var gZenViewSplitter = {
const splitData = this._data.find((group) => group.tabs.includes(tab));
function modifyDecks(tabs, add) {
for (const tab of tabs) {
if (tab.linkedBrowser.docShellIsActive !== add) {
tab.linkedBrowser.docShellIsActive = add;
}
tab.linkedBrowser.zenModeActive = add;
tab.linkedBrowser.docShellIsActive = add;
let browser = tab.linkedBrowser.closest(".browserSidebarContainer");
if (add) {
browser.classList.add("deck-selected");
browser.setAttribute("zen-split", "true");
continue;
}
browser.classList.remove("deck-selected");
browser.removeAttribute("zen-split");
}
setTimeout((() => {
modifyDecks(tabs, add);
}).bind(tabs, add), 300);
}
const handleClick = (tab) => {
return ((event) => {
@@ -104,7 +100,6 @@ var gZenViewSplitter = {
let container = tab.linkedBrowser.closest(".browserSidebarContainer");
container.removeAttribute("zen-split-active");
console.assert(container, "No container found for tab");
container.removeAttribute("zen-split");
container.removeEventListener("click", handleClick(tab));
}
this.tabBrowserPanel.removeAttribute("zen-split-view");
@@ -125,7 +120,6 @@ var gZenViewSplitter = {
}
container.addEventListener("click", handleClick(_tab));
console.assert(container, "No container found for tab");
container.setAttribute("zen-split", "true");
}
modifyDecks(splitData.tabs, true);
},

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index c91a5d4db29a9691e9b43ef4d5d5e9a4db945ac8..00107b54e09137ee1af1c56b8c9e853a4ffe7264 100644
index 72753da622ec51d8be130a49e98a62f483d7f8db..424a8778b581af0c67cfd1c01a65fceec2bf24fb 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -13,6 +13,15 @@ ChromeUtils.importESModule("resource://gre/modules/NotificationDB.sys.mjs");
@@ -18,7 +18,7 @@ index c91a5d4db29a9691e9b43ef4d5d5e9a4db945ac8..00107b54e09137ee1af1c56b8c9e853a
ChromeUtils.defineESModuleGetters(this, {
AMTelemetry: "resource://gre/modules/AddonManager.sys.mjs",
AboutNewTab: "resource:///modules/AboutNewTab.sys.mjs",
@@ -1664,6 +1673,7 @@ var gBrowserInit = {
@@ -1668,6 +1677,7 @@ var gBrowserInit = {
});
updateFxaToolbarMenu(gFxaToolbarEnabled, true);
@@ -26,7 +26,7 @@ index c91a5d4db29a9691e9b43ef4d5d5e9a4db945ac8..00107b54e09137ee1af1c56b8c9e853a
updatePrintCommands(gPrintEnabled);
@@ -1727,6 +1737,11 @@ var gBrowserInit = {
@@ -1731,6 +1741,11 @@ var gBrowserInit = {
}
// Misc. inits.
@@ -38,7 +38,16 @@ index c91a5d4db29a9691e9b43ef4d5d5e9a4db945ac8..00107b54e09137ee1af1c56b8c9e853a
gUIDensity.init();
TabletModeUpdater.init();
CombinedStopReload.ensureInitialized();
@@ -6669,7 +6684,7 @@ function setToolbarVisibility(
@@ -4821,6 +4836,8 @@ var XULBrowserWindow = {
}
}
}
+
+ gZenViewSplitter.onLocationChange(gBrowser.selectedBrowser);
},
_updateElementsForContentType() {
@@ -6099,7 +6116,7 @@ function setToolbarVisibility(
);
}
@@ -47,7 +56,7 @@ index c91a5d4db29a9691e9b43ef4d5d5e9a4db945ac8..00107b54e09137ee1af1c56b8c9e853a
switch (isVisible) {
case true:
case "always":
@@ -9789,6 +9804,13 @@ var gDialogBox = {
@@ -9007,6 +9024,13 @@ var gDialogBox = {
parentElement.style.removeProperty("width");
parentElement.style.removeProperty("height");
document.documentElement.setAttribute("window-modal-open", true);
@@ -61,7 +70,7 @@ index c91a5d4db29a9691e9b43ef4d5d5e9a4db945ac8..00107b54e09137ee1af1c56b8c9e853a
// Call this first so the contents show up and get layout, which is
// required for SubDialog to work.
parentElement.showModal();
@@ -10166,3 +10188,15 @@ var FirefoxViewHandler = {
@@ -9384,3 +9408,15 @@ var FirefoxViewHandler = {
this.button?.toggleAttribute("attention", shouldShow);
},
};

View File

@@ -1,13 +0,0 @@
diff --git a/browser/base/content/tabbrowser.js b/browser/base/content/tabbrowser.js
index 3bca0b6d30468dc3a755219723f673ec80dfce6e..6dd39545115f57ab2aedb9f8aad79ee35466a4c7 100644
--- a/browser/base/content/tabbrowser.js
+++ b/browser/base/content/tabbrowser.js
@@ -1349,6 +1349,8 @@
if (!aForceUpdate) {
TelemetryStopwatch.finish("FX_TAB_SWITCH_UPDATE_MS");
}
+
+ gZenViewSplitter.onLocationChange(newBrowser);
},
_adjustFocusBeforeTabSwitch(oldTab, newTab) {

View File

@@ -6,13 +6,14 @@
flex-direction: row;
}
#tabbrowser-tabpanels[zen-split-view="true"] > *:not(.deck-selected) {
#tabbrowser-tabpanels[zen-split-view="true"] > *:not([zen-split="true"]) {
flex: 0;
margin: 0 !important;
}
#tabbrowser-tabpanels[zen-split-view="true"] > .deck-selected {
#tabbrowser-tabpanels[zen-split-view="true"] > [zen-split="true"] {
flex: 1;
margin-right: 5px !important;
}
#tabbrowser-tabpanels[zen-split-view="true"] .browserSidebarContainer[zen-split-active="true"] {

View File

@@ -0,0 +1,18 @@
diff --git a/toolkit/content/widgets/browser-custom-element.js b/toolkit/content/widgets/browser-custom-element.js
index 887f59c742c7cb540773f18ce680e1e5b6fd5314..0431d97412b69a9f33042fcc885edb1115a79716 100644
--- a/toolkit/content/widgets/browser-custom-element.js
+++ b/toolkit/content/widgets/browser-custom-element.js
@@ -411,11 +411,11 @@
}
set docShellIsActive(val) {
- this.browsingContext.isActive = val;
+ this.browsingContext.isActive = val || this.zenModeActive;
if (this.isRemoteBrowser) {
let remoteTab = this.frameLoader?.remoteTab;
if (remoteTab) {
- remoteTab.renderLayers = val;
+ remoteTab.renderLayers = val || this.zenModeActive;
}
}
}

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css
index e8635d4525351cedb25bd6af280e10f3839d3b63..be92c08c5657123ff106d85536c2228c9ced9e25 100644
index 908132d598083dd43ee62940f4bac84e49238c92..eb7edf3870032fe796b3fa676de96e1dbb5eea85 100644
--- a/toolkit/content/xul.css
+++ b/toolkit/content/xul.css
@@ -12,6 +12,8 @@
@@ -11,3 +11,13 @@ index e8635d4525351cedb25bd6af280e10f3839d3b63..be92c08c5657123ff106d85536c2228c
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */
@namespace html url("http://www.w3.org/1999/xhtml"); /* namespace for HTML elements */
@@ -485,7 +487,8 @@ deck > *|*:not(:-moz-native-anonymous) {
}
tabpanels > .deck-selected,
-deck > .deck-selected {
+deck > .deck-selected,
+tabpanels > [zen-split="true"] {
-moz-subtree-hidden-only-visually: 0;
visibility: inherit;
}