mirror of
https://github.com/zen-browser/desktop.git
synced 2026-08-29 18:01:31 +00:00
Fixed split views!
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
},
|
||||
|
||||
@@ -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);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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) {
|
||||
@@ -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"] {
|
||||
|
||||
18
src/toolkit/content/widgets/browser-custom-element-js.patch
Normal file
18
src/toolkit/content/widgets/browser-custom-element-js.patch
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user