From bf66df57b131433430c4a3f14a37a000655bc7e6 Mon Sep 17 00:00:00 2001 From: "mr. m" Date: Sun, 17 Aug 2025 03:56:06 +0200 Subject: [PATCH] feat: Changed 'expand folder' to 'unpack folder' and fixed pressing TAB on the URL while in compact mode, b=no-bug, c=folders, common, compact-mode --- locales/en-US/browser/browser/zen-folders.ftl | 4 +- .../base/content/zen-panels/popups.inc | 2 +- src/zen/common/emojis/ZenEmojiPicker.mjs | 59 ++++--------------- src/zen/compact-mode/ZenCompactMode.mjs | 2 +- src/zen/folders/ZenFolders.mjs | 14 ++++- 5 files changed, 27 insertions(+), 54 deletions(-) diff --git a/locales/en-US/browser/browser/zen-folders.ftl b/locales/en-US/browser/browser/zen-folders.ftl index c3771118f..b4c15e8bf 100644 --- a/locales/en-US/browser/browser/zen-folders.ftl +++ b/locales/en-US/browser/browser/zen-folders.ftl @@ -5,8 +5,8 @@ zen-folders-search-placeholder = zen-folders-panel-rename-folder = .label = Rename Folder -zen-folders-panel-expand-folder = - .label = Expand Folder +zen-folders-panel-unpack-folder = + .label = Unpack Folder zen-folders-panel-delete-folder = .label = Delete Folder diff --git a/src/browser/base/content/zen-panels/popups.inc b/src/browser/base/content/zen-panels/popups.inc index efd4b0014..e90c30b32 100644 --- a/src/browser/base/content/zen-panels/popups.inc +++ b/src/browser/base/content/zen-panels/popups.inc @@ -35,7 +35,7 @@ - + diff --git a/src/zen/common/emojis/ZenEmojiPicker.mjs b/src/zen/common/emojis/ZenEmojiPicker.mjs index 5bc789799..6be15870e 100644 --- a/src/zen/common/emojis/ZenEmojiPicker.mjs +++ b/src/zen/common/emojis/ZenEmojiPicker.mjs @@ -4,55 +4,16 @@ { // prettier-ignore const SVG_ICONS = [ - "airplane.svg", - "baseball.svg", - "basket.svg", - "bed.svg", - "bell.svg", - "book.svg", - "bookmark.svg", - "chat.svg", - "checkbox.svg", - "circle.svg", - "cloud.svg", - "cloud-outline.svg", - "code.svg", - "coins.svg", - "cutlery.svg", - "egg.svg", - "flag.svg", - "folder.svg", - "globe.svg", - "globe-1.svg", - "grid-2x2.svg", - "grid-3x3.svg", - "heart.svg", - "inbox.svg", - "layers.svg", - "lightning.svg", - "mail.svg", - "map.svg", - "moon.svg", - "music.svg", - "page.svg", - "palette.svg", - "paw.svg", - "people.svg", - "pizza.svg", - "planet.svg", - "present.svg", - "shapes.svg", - "skull.svg", - "square.svg", - "squares.svg", - "star.svg", - "star-1.svg", - "sun.svg", - "terminal.svg", - "triangle.svg", - "video.svg", - "weight.svg", -]; + "airplane.svg", "baseball.svg", "basket.svg", "bed.svg", + "bell.svg", "book.svg", "bookmark.svg", "chat.svg", "checkbox.svg", + "circle.svg", "cloud.svg", "cloud-outline.svg", "code.svg", "coins.svg", + "cutlery.svg", "egg.svg", "flag.svg", "folder.svg", "globe.svg", + "globe-1.svg", "grid-2x2.svg", "grid-3x3.svg", "heart.svg", "inbox.svg", + "layers.svg", "lightning.svg", "mail.svg", "map.svg", "moon.svg", "music.svg", + "page.svg", "palette.svg", "paw.svg", "people.svg", "pizza.svg", "planet.svg", + "present.svg", "shapes.svg", "skull.svg", "square.svg", "squares.svg", "star.svg", + "star-1.svg", "sun.svg", "terminal.svg", "triangle.svg", "video.svg", "weight.svg", + ]; class nsZenEmojiPicker extends nsZenDOMOperatedFeature { #panel; diff --git a/src/zen/compact-mode/ZenCompactMode.mjs b/src/zen/compact-mode/ZenCompactMode.mjs index 87d48e015..700109159 100644 --- a/src/zen/compact-mode/ZenCompactMode.mjs +++ b/src/zen/compact-mode/ZenCompactMode.mjs @@ -148,7 +148,7 @@ var gZenCompactModeManager = { [ { selector: - ":is([panelopen='true'], [open='true'], #urlbar:focus-within, [breakout-extend='true']):not(#urlbar[zen-floating-urlbar='true']):not(tab):not(.zen-compact-mode-ignore)", + ":is([panelopen='true'], [open='true'], [breakout-extend='true']):not(#urlbar[zen-floating-urlbar='true']):not(tab):not(.zen-compact-mode-ignore)", }, ], 'zen-compact-mode-active' diff --git a/src/zen/folders/ZenFolders.mjs b/src/zen/folders/ZenFolders.mjs index 868e7ceab..5e84f6197 100644 --- a/src/zen/folders/ZenFolders.mjs +++ b/src/zen/folders/ZenFolders.mjs @@ -59,6 +59,10 @@ `` ); document.getElementById('context_moveTabToGroup').before(contextMenuItems); + const contextMenuItemsToolbar = window.MozXULElement.parseXULToFragment( + `` + ); + document.getElementById('toolbar-context-openANewTab').after(contextMenuItemsToolbar); const folderActionsMenu = document.getElementById('zenFolderActions'); folderActionsMenu.addEventListener('popupshowing', (event) => { @@ -172,9 +176,13 @@ window.addEventListener('TabGroupCollapse', this.#onTabGroupCollapse.bind(this)); window.addEventListener('FolderGrouped', this.#onFolderGrouped.bind(this)); window.addEventListener('TabSelect', this.#onTabSelected.bind(this)); + const onNewFolder = this.#onNewFolder.bind(this); document .getElementById('zen-context-menu-new-folder') - .addEventListener('command', this.#onNewFolder.bind(this)); + .addEventListener('command', onNewFolder); + document + .getElementById('zen-context-menu-new-folder-toolbar') + .addEventListener('command', onNewFolder); SessionStore.promiseInitialized.then(() => { gBrowser.tabContainer.addEventListener('dragstart', this.cancelPopupTimer.bind(this)); }); @@ -444,6 +452,7 @@ } #onNewFolder(event) { + const isFromToolbar = event.target.id === 'zen-context-menu-new-folder-toolbar'; const contextMenu = event.target.parentElement; let tabs = []; let triggerTab = @@ -451,6 +460,9 @@ (contextMenu.triggerNode.tab || contextMenu.triggerNode.closest('tab')); tabs.push(triggerTab, ...gBrowser.selectedTabs); + if (isFromToolbar) { + tabs = []; + } const group = this.createFolder(tabs, { insertBefore: triggerTab, renameFolder: true }); if (!group) return;