mirror of
https://github.com/zen-browser/desktop.git
synced 2026-04-18 05:20:45 +00:00
feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces
This commit is contained in:
@@ -92,6 +92,7 @@
|
||||
}
|
||||
|
||||
onTabIconChanged(tab, url = null) {
|
||||
tab.dispatchEvent(new CustomEvent('ZenTabIconChanged', { bubbles: true, detail: { tab } }));
|
||||
const iconUrl = url ?? tab.iconImage.src;
|
||||
if (!iconUrl && tab.hasAttribute('zen-pin-id')) {
|
||||
try {
|
||||
@@ -1436,6 +1437,7 @@
|
||||
}
|
||||
|
||||
async onTabLabelChanged(tab) {
|
||||
tab.dispatchEvent(new CustomEvent('ZenTabLabelChanged', { detail: { tab } }));
|
||||
if (!this._pinsCache) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
'TabHide',
|
||||
'TabShow',
|
||||
'TabMove',
|
||||
'ZenTabIconChanged',
|
||||
'ZenTabLabelChanged',
|
||||
];
|
||||
const eventListener = this.#handleEvent.bind(this);
|
||||
for (const event of kEvents) {
|
||||
@@ -104,6 +106,12 @@
|
||||
case 'TabMove':
|
||||
this.#onTabMove(event);
|
||||
break;
|
||||
case 'ZenTabIconChanged':
|
||||
this.#onTabIconChanged(event);
|
||||
break;
|
||||
case 'ZenTabLabelChanged':
|
||||
this.#onTabLabelChanged(event);
|
||||
break;
|
||||
default:
|
||||
console.warn(`Unhandled event type: ${event.type}`);
|
||||
break;
|
||||
@@ -156,6 +164,26 @@
|
||||
}
|
||||
}
|
||||
|
||||
#onTabIconChanged(event) {
|
||||
this.#updateTabIconAndLabel(event);
|
||||
}
|
||||
|
||||
#onTabLabelChanged(event) {
|
||||
this.#updateTabIconAndLabel(event);
|
||||
}
|
||||
|
||||
#updateTabIconAndLabel(event) {
|
||||
const targetTab = event.target;
|
||||
if (targetTab.hasAttribute("pending")) {
|
||||
const tabId = this.#getTabId(targetTab);
|
||||
const tabToChange = this.#getTabWithId(tabId);
|
||||
if (tabToChange) {
|
||||
gBrowser.setIcon(tabToChange, gBrowser.getIcon(targetTab));
|
||||
gBrowser._setTabLabel(tabToChange, targetTab.label);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#onTabAddedToEssentials(event) {
|
||||
const targetTab = event.target;
|
||||
const tabId = this.#getTabId(targetTab);
|
||||
@@ -209,7 +237,7 @@
|
||||
const isEssential = isPinned && targetTab.hasAttribute('zen-essential');
|
||||
const elementIndex = targetTab.elementIndex;
|
||||
|
||||
const duplicatedTab = SessionStore.duplicateTab(window, targetTab, 0, true);
|
||||
const duplicatedTab = SessionStore.duplicateTab(window, targetTab, 0);
|
||||
if (isEssential) {
|
||||
gZenPinnedTabManager.addToEssentials(duplicatedTab);
|
||||
} else if (isPinned) {
|
||||
|
||||
Reference in New Issue
Block a user