auf 136.0 upgedatet
Diesen Button habe ich mal für mich selbst geschrieben, funzt auch in 136:
EDIT: zeitgleicher Post mit Andreas; damit ist dieser Beitrag überflüssig.
JavaScript
// JavaScript Document
// B_Quit_Firefox.uc.js
// Das Script erstellt einen Button, der ein einzelnes Firefox-Fenster separat schließt (Linksklick) oder Firefox beendet (Mittel-/Rechtsklick). Das .svg-Icon kann - je nach Hover-Zustand - mit zwei unterschiedlichen Farben gefüllt werden [fill]. Beim Überfahren des Buttons rotiert das Icon um 180deg [rotate: 180deg].
// Für das mitgelieferte Icon als .svg-Datei mit [moz-context-properties] ändert das Script die Einstellung [svg.context-properties.content.enabled] in about:config auf 'true'.
(function() {
if (!window.gBrowser)
return;
const
// ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
id = 'quit-button', // Id des neuen Buttons
label = 'Fenster schließen/Firefox beenden', // Bezeichnung des neuen Buttons
tooltiptext = 'Fenster schließen/Firefox beenden\n\nLinksklick: Fenster schließen\nMittel-/Rechtsklick: Firefox beenden',
// Icon-------------------------------------------------------
icon = 'quit-16.svg', // [Name.Dateiendung] des anzuzeigenden Symbols
iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon beinhaltet
iconColOu = 'red', // Farbe des Icons (nur .svg-Datei mit [moz-context-properties], bei anderen Icons hat const iconColOu keine Funktion)
iconColOv = 'currentColor', // Farbe des Icons beim Überfahren des Buttons (nur .svg-Datei mit [moz-context-properties], bei anderen Icons hat const iconColOv keine Funktion)
// ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)),
cl = '.toolbarbutton-icon';
//const end
if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
}
//----
CustomizableUI.createWidget({
id: id,
type: 'button',
defaultArea: CustomizableUI.AREA_NAVBAR,
label: label,
tooltiptext: tooltiptext,
onCreated: (button) => {
button.style.MozContextProperties = 'fill, stroke, fill-opacity';
button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
button.style.fill = iconColOu;
//over
button.addEventListener('mouseover', () => {
button.style.fill = iconColOv;
button.querySelector(cl).style.rotate = '180deg';
});
//out
button.addEventListener('mouseout', () => {
button.style.fill = iconColOu;
button.querySelector(cl).style.rotate = '0deg';
});
//click
button.addEventListener('click', () => {
if (event.button === 0) {
event.target.ownerGlobal.BrowserCommands.tryToCloseWindow(event);
}
else
if (event.button === 1 || event.button === 2) {
event.target.ownerGlobal.goQuitApplication(event);
}
});
}
});
//----
})();
Alles anzeigen