From c2d5ecfb5df95c3069842b823f63ba2197ae96e4 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Fri, 7 Nov 2025 23:26:49 +0000 Subject: [PATCH] Gate mac spell checker and log status --- electron/main/main.ts | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/electron/main/main.ts b/electron/main/main.ts index 747238e8..9818e8d2 100644 --- a/electron/main/main.ts +++ b/electron/main/main.ts @@ -1,10 +1,14 @@ -import { app, BrowserWindow, dialog, ipcMain, nativeTheme } from "electron" +import { app, BrowserWindow, dialog, ipcMain, nativeTheme, session } from "electron" import { join } from "path" import { createApplicationMenu } from "./menu" import { setupInstanceIPC } from "./ipc" import { setupStorageIPC } from "./storage" -app.commandLine.appendSwitch("disable-spell-checking") +const isMac = process.platform === "darwin" + +if (isMac) { + app.commandLine.appendSwitch("disable-spell-checking") +} // Setup IPC handlers before creating windows setupStorageIPC() @@ -25,12 +29,14 @@ function createWindow() { preload: join(__dirname, "../preload/index.js"), contextIsolation: true, nodeIntegration: false, - spellcheck: false, + spellcheck: !isMac, }, }) - // Disable macOS spell server to avoid input lag - mainWindow.webContents.session.setSpellCheckerEnabled(false) + if (isMac) { + // Disable macOS spell server to avoid input lag + mainWindow.webContents.session.setSpellCheckerEnabled(false) + } if (process.env.NODE_ENV === "development") { mainWindow.loadURL("http://localhost:3000") @@ -47,7 +53,22 @@ function createWindow() { }) } +if (isMac) { + app.on("web-contents-created", (_, contents) => { + contents.session.setSpellCheckerEnabled(false) + }) +} + app.whenReady().then(() => { + if (isMac) { + session.defaultSession.setSpellCheckerEnabled(false) + app.on("browser-window-created", (_, window) => { + window.webContents.session.setSpellCheckerEnabled(false) + }) + } + + console.log("[spellcheck] default session enabled:", session.defaultSession.isSpellCheckerEnabled()) + createWindow() app.on("activate", () => {