Restrict application menu functionality to macOS
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good

- Updated `applyApplicationMenu` and `setupApplicationMenuEvents` functions to return early if the platform is not macOS, ensuring that menu features are only available on macOS.
- Adjusted the `createMainWindow` function to conditionally call menu setup functions based on the operating system, improving cross-platform compatibility.
This commit is contained in:
Tom Butcher 2026-08-08 22:19:39 +01:00
parent d2d64ef45d
commit ddaeb3cfff
2 changed files with 21 additions and 10 deletions

View File

@ -132,6 +132,10 @@ function buildApplicationMenuTemplate() {
} }
export function applyApplicationMenu() { export function applyApplicationMenu() {
if (process.platform !== "darwin") {
return;
}
ApplicationMenu.setApplicationMenu(buildApplicationMenuTemplate()); ApplicationMenu.setApplicationMenu(buildApplicationMenuTemplate());
} }
@ -150,6 +154,10 @@ export function setupApplicationMenuEvents({
onToggleDevTools, onToggleDevTools,
onCheckForUpdates, onCheckForUpdates,
}) { }) {
if (process.platform !== "darwin") {
return;
}
navigateHandler = onNavigate; navigateHandler = onNavigate;
ApplicationMenu.on("application-menu-clicked", (event) => { ApplicationMenu.on("application-menu-clicked", (event) => {

View File

@ -261,16 +261,19 @@ export async function createMainWindow(rpc) {
} }
setupMainWindowMessaging(mainWindow) setupMainWindowMessaging(mainWindow)
applyApplicationMenu()
setupApplicationMenuEvents({ if (isMacOS) {
onNavigate: sendNavigateToRenderer, applyApplicationMenu()
onToggleDevTools: () => { setupApplicationMenuEvents({
mainWindow?.webview?.toggleDevTools?.() onNavigate: sendNavigateToRenderer,
}, onToggleDevTools: () => {
onCheckForUpdates: () => { mainWindow?.webview?.toggleDevTools?.()
sendToRenderer('checkForUpdates') },
} onCheckForUpdates: () => {
}) sendToRenderer('checkForUpdates')
}
})
}
setupWindowEvents(mainWindow) setupWindowEvents(mainWindow)
applyStartupWindowState(mainWindow) applyStartupWindowState(mainWindow)