From ed492568e64ba3ac1fceb54c35d0b70a3b93925a Mon Sep 17 00:00:00 2001 From: "Mr. M" Date: Mon, 22 Sep 2025 23:08:11 +0200 Subject: [PATCH] fix: Small fixes when cancelling new empty split view, b=no-bug, c=common, split-view, workspaces --- prefs/zen.yaml | 3 +++ .../urlbar/UrlbarPrefs-sys-mjs.patch | 12 +++++++++++ .../urlbar/UrlbarUtils-sys-mjs.patch | 21 +++++++++++++++++++ src/zen/common/ZenUIManager.mjs | 3 ++- src/zen/split-view/ZenViewSplitter.mjs | 6 ++++-- src/zen/workspaces/ZenWorkspaces.mjs | 2 +- surfer.json | 2 +- 7 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch create mode 100644 src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch diff --git a/prefs/zen.yaml b/prefs/zen.yaml index 88b9920fd..71744da42 100644 --- a/prefs/zen.yaml +++ b/prefs/zen.yaml @@ -14,6 +14,9 @@ - name: zen.tabs.show-newtab-vertical value: true +- name: zen.tabs.close-window-with-empty + value: true + - name: zen.ctrlTab.show-pending-tabs value: false diff --git a/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch new file mode 100644 index 000000000..6cc0c51c1 --- /dev/null +++ b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch @@ -0,0 +1,12 @@ +diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs +index 3c179db3b310c43f8c6c06b1ecbcf5ed59feefe6..693bef15401cd4428c8a0222de57b83b78564194 100644 +--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs ++++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs +@@ -719,6 +719,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) { + */ + let rootGroup = { + children: [ ++ { group: lazy.UrlbarUtils.RESULT_GROUP.ZEN_ACTION }, + // heuristic + { + maxResultCount: 1, diff --git a/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch b/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch new file mode 100644 index 000000000..cc0b30de1 --- /dev/null +++ b/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch @@ -0,0 +1,21 @@ +diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs +index 0bc15c02f56dd8f46a21fed02b4e21a741f27f41..b69a4d34f700637bd352620c520b989cf00fa39f 100644 +--- a/browser/components/urlbar/UrlbarUtils.sys.mjs ++++ b/browser/components/urlbar/UrlbarUtils.sys.mjs +@@ -75,6 +75,7 @@ export var UrlbarUtils = { + RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword", + SUGGESTED_INDEX: "suggestedIndex", + TAIL_SUGGESTION: "tailSuggestion", ++ ZEN_ACTION: "zenAction", + }), + + // Defines provider types. +@@ -576,6 +577,8 @@ export var UrlbarUtils = { + return this.RESULT_GROUP.INPUT_HISTORY; + case "UrlbarProviderQuickSuggest": + return this.RESULT_GROUP.GENERAL_PARENT; ++ case "ZenUrlbarProviderGlobalActions": ++ return this.RESULT_GROUP.ZEN_ACTION; + default: + break; + } diff --git a/src/zen/common/ZenUIManager.mjs b/src/zen/common/ZenUIManager.mjs index 086712808..4f74fabaf 100644 --- a/src/zen/common/ZenUIManager.mjs +++ b/src/zen/common/ZenUIManager.mjs @@ -643,7 +643,8 @@ var gZenVerticalTabsManager = { !aItem.isConnected || gZenUIManager.testingEnabled || !gZenStartup.isReady || - !gZenPinnedTabManager.hasInitializedPins + !gZenPinnedTabManager.hasInitializedPins || + aItem.group?.hasAttribute('split-view-group') ) { return; } diff --git a/src/zen/split-view/ZenViewSplitter.mjs b/src/zen/split-view/ZenViewSplitter.mjs index 60256dc49..f61d2a78d 100644 --- a/src/zen/split-view/ZenViewSplitter.mjs +++ b/src/zen/split-view/ZenViewSplitter.mjs @@ -889,7 +889,9 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { removeGroup(groupIndex) { const group = this._data[groupIndex]; for (const tab of group.tabs.reverse()) { - gBrowser.ungroupTab(tab); + if (tab.group?.hasAttribute('split-view-group')) { + gBrowser.ungroupTab(tab); + } } if (this.currentView === groupIndex) { this.deactivateCurrentSplitView(); @@ -1951,7 +1953,7 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature { const groupIndex = this._data.findIndex((group) => group.tabs.includes(emptyTab)); const newSelectedTab = gBrowser.selectedTab; const cleanup = () => { - this.removeTabFromGroup(emptyTab, groupIndex, { changeTab: !onSwitch }); + this.removeTabFromGroup(emptyTab, groupIndex, { changeTab: !onSwitch, forUnsplit: true }); const command = document.getElementById('cmd_zenNewEmptySplit'); command.removeAttribute('disabled'); }; diff --git a/src/zen/workspaces/ZenWorkspaces.mjs b/src/zen/workspaces/ZenWorkspaces.mjs index 464ee3e86..148527e0c 100644 --- a/src/zen/workspaces/ZenWorkspaces.mjs +++ b/src/zen/workspaces/ZenWorkspaces.mjs @@ -3082,7 +3082,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature { } handleTabCloseWindow() { - if (this.shouldCloseWindow()) { + if (Services.prefs.getBoolPref('zen.tabs.close-window-with-empty')) { document.getElementById('cmd_closeWindow').doCommand(); } } diff --git a/surfer.json b/surfer.json index 34952e82a..64ca34198 100644 --- a/surfer.json +++ b/surfer.json @@ -19,7 +19,7 @@ "brandShortName": "Zen", "brandFullName": "Zen Browser", "release": { - "displayVersion": "1.16b", + "displayVersion": "1.16.1b", "github": { "repo": "zen-browser/desktop" },