From 77a96a2e95d3409d8698096bb4134e2b859cde64 Mon Sep 17 00:00:00 2001 From: Marc Nuri Date: Mon, 9 Dec 2024 13:30:14 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20force=20native=20spell=20check?= =?UTF-8?q?=20until=20Electron=20issue=20is=20fixed=20(#464)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/electron/electron/issues/44336 Signed-off-by: Marc Nuri --- src/__tests__/electron.js | 3 +++ src/settings/settings.spell-check.browser.mjs | 4 ++++ src/spell-check/index.js | 8 +++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/__tests__/electron.js b/src/__tests__/electron.js index b8b8ac66..91b53eee 100644 --- a/src/__tests__/electron.js +++ b/src/__tests__/electron.js @@ -87,10 +87,13 @@ const mockElectronInstance = ({...overriddenProps} = {}) => { const webContentsViewInstance = mockWebContentsViewInstance(); const baseWindowInstance = mockBaseWindowInstance(); const sessionInstance = { + availableSpellCheckerLanguages: [], clearCache: jest.fn(), clearCodeCaches: jest.fn(), clearHostResolverCache: jest.fn(), clearStorageData: jest.fn(), + setSpellCheckerEnabled: jest.fn(), + setSpellCheckerLanguages: jest.fn(), userAgentInterceptor: true }; const trayInstance = { diff --git a/src/settings/settings.spell-check.browser.mjs b/src/settings/settings.spell-check.browser.mjs index 8ec73dcc..609be9a8 100644 --- a/src/settings/settings.spell-check.browser.mjs +++ b/src/settings/settings.spell-check.browser.mjs @@ -44,6 +44,10 @@ export const SpellCheckPane = ({dispatch, state}) => { checked=${useNative} onClick=${toggleProperty({dispatch, property: 'useNativeSpellChecker'})} /> +
+

NOTE: Currently, the Native Spell Checker is always used due to a bug in Electron:

+

electron/issues/44336

+
<${Card.Divider} />
${ Object.entries(dictionaries(state)) diff --git a/src/spell-check/index.js b/src/spell-check/index.js index 40eab1dc..22fc7a63 100644 --- a/src/spell-check/index.js +++ b/src/spell-check/index.js @@ -87,7 +87,13 @@ const getAvailableNativeDictionaries = () => const handleGetMisspelled = async (_event, words) => fakeRendererWorker.webContents.executeJavaScript(`getMisspelled(${JSON.stringify(words)})`); -const getUseNativeSpellChecker = () => loadSettings().useNativeSpellChecker; +const getUseNativeSpellChecker = () => { + // eslint-disable-next-line no-warning-comments + // TODO: always use native spellcheck until there's a fix for + // https://github.com/electron/electron/issues/44336 + return true; + // return loadSettings().useNativeSpellChecker; +}; const getEnabledDictionaries = () => loadSettings().enabledDictionaries;