feat(native-buttons): watch for theme changes

This commit is contained in:
Elian Doran 2024-12-01 17:59:55 +02:00
parent 45faa666ba
commit 5761320731

View File

@ -48,13 +48,18 @@ function initOnElectron() {
electron.ipcRenderer.on('globalShortcut', async (event, actionName) => appContext.triggerCommand(actionName)); electron.ipcRenderer.on('globalShortcut', async (event, actionName) => appContext.triggerCommand(actionName));
// Update the native title bar buttons. // Update the native title bar buttons.
const electronRemote = utils.dynamicRequire("@electron/remote"); applyTitleBarOverlaySettings();
// Register for changes to the native title bar colors.
window.matchMedia("(prefers-color-scheme: dark)")
.addEventListener("change", applyTitleBarOverlaySettings);
}
function applyTitleBarOverlaySettings() {
const electronRemote = utils.dynamicRequire("@electron/remote");
const currentWindow = electronRemote.getCurrentWindow(); const currentWindow = electronRemote.getCurrentWindow();
const documentStyle = window.getComputedStyle(document.documentElement); const documentStyle = window.getComputedStyle(document.documentElement);
currentWindow.setTitleBarOverlay({ const color = documentStyle.getPropertyValue("--native-titlebar-background");
color: documentStyle.getPropertyValue("--native-titlebar-background"), const symbolColor = documentStyle.getPropertyValue("--native-titlebar-foreground");
symbolColor: documentStyle.getPropertyValue("--native-titlebar-foreground") currentWindow.setTitleBarOverlay({ color, symbolColor });
});
console.log("Electron initialized.");
} }