mirror of
https://github.com/zen-browser/desktop.git
synced 2026-01-28 07:36:10 +00:00
Allow adding split views with context menu
This commit is contained in:
@@ -288,7 +288,7 @@ var gZenBrowserManagerSidebar = {
|
||||
|
||||
_createWebPanelBrowser(data) {
|
||||
const titleContainer = document.getElementById("zen-sidebar-web-panel-title");
|
||||
titleContainer.textContent = "";
|
||||
titleContainer.textContent = "Loading...";
|
||||
let browser = gBrowser.createBrowser({});
|
||||
browser.setAttribute("disablefullscreen", "true");
|
||||
browser.setAttribute("src", data.url);
|
||||
|
||||
@@ -42,6 +42,9 @@ var gZenViewSplitter = {
|
||||
}
|
||||
let dataTab = this._data[index].tabs;
|
||||
dataTab.splice(dataTab.indexOf(tab), 1);
|
||||
tab._zenSplitted = false;
|
||||
tab.linkedBrowser.zenModeActive = false;
|
||||
tab.linkedBrowser.docShellIsActive = false;
|
||||
if (dataTab.length < 2) {
|
||||
this._data.splice(index, 1);
|
||||
if (this.currentView == index) {
|
||||
@@ -98,7 +101,7 @@ var gZenViewSplitter = {
|
||||
return;
|
||||
}
|
||||
for (const tab of this._data[this.currentView].tabs) {
|
||||
tab._zenSplitted = false;
|
||||
// tab._zenSplitted = false;
|
||||
let container = tab.linkedBrowser.closest(".browserSidebarContainer");
|
||||
container.removeAttribute("zen-split-active");
|
||||
container.classList.remove("deck-selected");
|
||||
@@ -129,6 +132,25 @@ var gZenViewSplitter = {
|
||||
}
|
||||
modifyDecks(splitData.tabs, true);
|
||||
},
|
||||
|
||||
contextSplitTabs() {
|
||||
let tabs = gBrowser.selectedTabs;
|
||||
this.splitTabs(tabs);
|
||||
},
|
||||
|
||||
contextCanSplitTabs() {
|
||||
if (gBrowser.selectedTabs.length < 2) {
|
||||
return false;
|
||||
}
|
||||
// Check if any tab is already split
|
||||
for (const tab of gBrowser.selectedTabs) {
|
||||
console.log(tab._zenSplitted);
|
||||
if (tab._zenSplitted) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
};
|
||||
|
||||
gZenViewSplitter.init();
|
||||
|
||||
@@ -1,8 +1,21 @@
|
||||
diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
|
||||
index bff8d98b27819b149a0c51c1195e1ee3668f2e31..622cbe099be0f1da8f48132204b73e577483ceae 100644
|
||||
index 91b2483c53fe67875d108a3d7c1959411f1d2c8f..1c3f460392a9c6ad4329865f3bf5dd253d84895d 100644
|
||||
--- a/browser/base/content/main-popupset.inc.xhtml
|
||||
+++ b/browser/base/content/main-popupset.inc.xhtml
|
||||
@@ -166,6 +166,10 @@
|
||||
@@ -77,6 +77,12 @@
|
||||
data-lazy-l10n-id="tab-context-close-n-tabs"
|
||||
data-l10n-args='{"tabCount": 1}'
|
||||
oncommand="TabContextMenu.closeContextTabs();"/>
|
||||
+ <menuseparator/>
|
||||
+ <menuitem id="context_zenSplitTabs"
|
||||
+ data-lazy-l10n-id="tab-zen-split-tabs"
|
||||
+ data-l10n-args='{"tabCount": 1}'
|
||||
+ oncommand="gZenViewSplitter.contextSplitTabs();"/>
|
||||
+ <menuseparator/>
|
||||
<menu id="context_closeTabOptions"
|
||||
data-lazy-l10n-id="tab-context-close-multiple-tabs">
|
||||
<menupopup id="closeTabOptions">
|
||||
@@ -166,6 +172,10 @@
|
||||
hidden="true"
|
||||
tabspecific="true"
|
||||
aria-labelledby="editBookmarkPanelTitle">
|
||||
@@ -13,7 +26,7 @@ index bff8d98b27819b149a0c51c1195e1ee3668f2e31..622cbe099be0f1da8f48132204b73e57
|
||||
<box class="panel-header">
|
||||
<html:h1>
|
||||
<html:span id="editBookmarkPanelTitle"/>
|
||||
@@ -188,12 +192,14 @@
|
||||
@@ -188,12 +198,14 @@
|
||||
class="footer-button"
|
||||
data-l10n-id="bookmark-panel-save-button"
|
||||
default="true"
|
||||
@@ -28,7 +41,7 @@ index bff8d98b27819b149a0c51c1195e1ee3668f2e31..622cbe099be0f1da8f48132204b73e57
|
||||
</panel>
|
||||
</html:template>
|
||||
|
||||
@@ -491,6 +497,8 @@
|
||||
@@ -507,6 +519,8 @@
|
||||
|
||||
#include popup-notifications.inc
|
||||
|
||||
|
||||
16
src/browser/base/content/tabbrowser-js.patch
Normal file
16
src/browser/base/content/tabbrowser-js.patch
Normal file
@@ -0,0 +1,16 @@
|
||||
diff --git a/browser/base/content/tabbrowser.js b/browser/base/content/tabbrowser.js
|
||||
index 3bca0b6d30468dc3a755219723f673ec80dfce6e..200a609ea31a8c904e2d3e39a3a06ff67fb313ed 100644
|
||||
--- a/browser/base/content/tabbrowser.js
|
||||
+++ b/browser/base/content/tabbrowser.js
|
||||
@@ -7623,6 +7623,11 @@ var TabContextMenu = {
|
||||
this.contextTab.linkedBrowser,
|
||||
document.getElementById("context_sendTabToDevice")
|
||||
);
|
||||
+
|
||||
+ document
|
||||
+ .getElementById("context_zenSplitTabs")
|
||||
+ .setAttribute("data-l10n-args", tabCountInfo);
|
||||
+ document.getElementById("context_zenSplitTabs").disabled = !gZenViewSplitter.contextCanSplitTabs();
|
||||
},
|
||||
|
||||
handleEvent(aEvent) {
|
||||
19
src/browser/locales/en-US/browser/tabContextMenu-ftl.patch
Normal file
19
src/browser/locales/en-US/browser/tabContextMenu-ftl.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
diff --git a/browser/locales/en-US/browser/tabContextMenu.ftl b/browser/locales/en-US/browser/tabContextMenu.ftl
|
||||
index df58df794c5e7101aa1ea684edd009532d74240d..0b4237dfde4e8e30e279f0a7022c1a36e67a04e8 100644
|
||||
--- a/browser/locales/en-US/browser/tabContextMenu.ftl
|
||||
+++ b/browser/locales/en-US/browser/tabContextMenu.ftl
|
||||
@@ -101,6 +101,14 @@ tab-context-move-tabs =
|
||||
}
|
||||
.accesskey = v
|
||||
|
||||
+tab-zen-split-tabs =
|
||||
+ .label =
|
||||
+ { $tabCount ->
|
||||
+ [1] Split Tab (multiple selected tabs needed)
|
||||
+ *[other] Split { $tabCount } Tabs
|
||||
+ }
|
||||
+ .accesskey = S
|
||||
+
|
||||
tab-context-send-tabs-to-device =
|
||||
.label =
|
||||
{ $tabCount ->
|
||||
@@ -34,6 +34,11 @@
|
||||
list-style-image: url("sidebars-right.svg") !important;
|
||||
}
|
||||
|
||||
#context_zenSplitTabs {
|
||||
/* TODO: Add split view icon */
|
||||
--menu-image: url("sidebars-right.svg") !important;
|
||||
}
|
||||
|
||||
#sidebar-button:-moz-locale-dir(ltr):not([positionend]),
|
||||
#sidebar-button:-moz-locale-dir(rtl)[positionend],
|
||||
#zen-sidepanel-button {
|
||||
|
||||
Reference in New Issue
Block a user