mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-26 09:07:30 +09:00
Issue #638 - Part 5: Add mute/unmute option to tab context menu
This commit is contained in:
parent
8714e0d4f7
commit
b0beabea4c
3 changed files with 46 additions and 0 deletions
|
|
@ -7021,6 +7021,17 @@ function restoreLastSession() {
|
||||||
|
|
||||||
var TabContextMenu = {
|
var TabContextMenu = {
|
||||||
contextTab: null,
|
contextTab: null,
|
||||||
|
_updateToggleMuteMenuItem(aTab, aConditionFn) {
|
||||||
|
["muted", "soundplaying"].forEach(attr => {
|
||||||
|
if (!aConditionFn || aConditionFn(attr)) {
|
||||||
|
if (aTab.hasAttribute(attr)) {
|
||||||
|
aTab.toggleMuteMenuItem.setAttribute(attr, "true");
|
||||||
|
} else {
|
||||||
|
aTab.toggleMuteMenuItem.removeAttribute(attr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
updateContextMenu: function updateContextMenu(aPopupMenu) {
|
updateContextMenu: function updateContextMenu(aPopupMenu) {
|
||||||
this.contextTab = aPopupMenu.triggerNode.localName == "tab" ?
|
this.contextTab = aPopupMenu.triggerNode.localName == "tab" ?
|
||||||
aPopupMenu.triggerNode : gBrowser.selectedTab;
|
aPopupMenu.triggerNode : gBrowser.selectedTab;
|
||||||
|
|
@ -7067,6 +7078,35 @@ var TabContextMenu = {
|
||||||
bookmarkAllTabs.hidden = this.contextTab.pinned;
|
bookmarkAllTabs.hidden = this.contextTab.pinned;
|
||||||
if (!bookmarkAllTabs.hidden)
|
if (!bookmarkAllTabs.hidden)
|
||||||
PlacesCommandHook.updateBookmarkAllTabsCommand();
|
PlacesCommandHook.updateBookmarkAllTabsCommand();
|
||||||
|
|
||||||
|
// Adjust the state of the toggle mute menu item.
|
||||||
|
let toggleMute = document.getElementById("context_toggleMuteTab");
|
||||||
|
if (this.contextTab.hasAttribute("muted")) {
|
||||||
|
toggleMute.label = gNavigatorBundle.getString("unmuteTab.label");
|
||||||
|
toggleMute.accessKey = gNavigatorBundle.getString("unmuteTab.accesskey");
|
||||||
|
} else {
|
||||||
|
toggleMute.label = gNavigatorBundle.getString("muteTab.label");
|
||||||
|
toggleMute.accessKey = gNavigatorBundle.getString("muteTab.accesskey");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.contextTab.toggleMuteMenuItem = toggleMute;
|
||||||
|
this._updateToggleMuteMenuItem(this.contextTab);
|
||||||
|
|
||||||
|
this.contextTab.addEventListener("TabAttrModified", this, false);
|
||||||
|
aPopupMenu.addEventListener("popuphiding", this, false);
|
||||||
|
},
|
||||||
|
handleEvent(aEvent) {
|
||||||
|
switch (aEvent.type) {
|
||||||
|
case "popuphiding":
|
||||||
|
gBrowser.removeEventListener("TabAttrModified", this);
|
||||||
|
aEvent.target.removeEventListener("popuphiding", this);
|
||||||
|
break;
|
||||||
|
case "TabAttrModified":
|
||||||
|
let tab = aEvent.target;
|
||||||
|
this._updateToggleMuteMenuItem(tab,
|
||||||
|
attr => aEvent.detail.changed.indexOf(attr) >= 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,7 @@
|
||||||
onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
|
onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
|
||||||
<menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
|
<menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
|
||||||
oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
|
oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
|
||||||
|
<menuitem id="context_toggleMuteTab" oncommand="TabContextMenu.contextTab.toggleMuteAudio();"/>
|
||||||
<menuseparator/>
|
<menuseparator/>
|
||||||
<menuitem id="context_pinTab" label="&pinTab.label;"
|
<menuitem id="context_pinTab" label="&pinTab.label;"
|
||||||
accesskey="&pinTab.accesskey;"
|
accesskey="&pinTab.accesskey;"
|
||||||
|
|
|
||||||
|
|
@ -397,3 +397,8 @@ slowStartup.helpButton.label = Learn How to Speed It Up
|
||||||
slowStartup.helpButton.accesskey = L
|
slowStartup.helpButton.accesskey = L
|
||||||
slowStartup.disableNotificationButton.label = Don't Tell Me Again
|
slowStartup.disableNotificationButton.label = Don't Tell Me Again
|
||||||
slowStartup.disableNotificationButton.accesskey = A
|
slowStartup.disableNotificationButton.accesskey = A
|
||||||
|
|
||||||
|
muteTab.label = Mute Tab
|
||||||
|
muteTab.accesskey = M
|
||||||
|
unmuteTab.label = Unmute Tab
|
||||||
|
unmuteTab.accesskey = M
|
||||||
Loading…
Add table
Add a link
Reference in a new issue