From dcab45a323f53a10ff5f419daa5ba6442817eebc Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Tue, 14 Nov 2017 21:04:41 +0100 Subject: feat(App): Add option to enable/disable spell checker --- src/webview/spellchecker.js | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) (limited to 'src/webview/spellchecker.js') diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js index ec8807874..5beb77e03 100644 --- a/src/webview/spellchecker.js +++ b/src/webview/spellchecker.js @@ -1,14 +1,30 @@ import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; -window.spellCheckHandler = new SpellCheckHandler(); -setTimeout(() => { - window.spellCheckHandler.attachToInput(); -}, 1000); - -// TODO: should we set the language to user settings? -// window.spellCheckHandler.switchLanguage('en-US'); - -const contextMenuBuilder = new ContextMenuBuilder(window.spellCheckHandler); -const contextMenuListener = new ContextMenuListener((info) => { // eslint-disable-line - contextMenuBuilder.showPopupMenu(info); -}); +import { isMac } from '../environment'; + +export default class Spellchecker { + isEnabled = false; + spellchecker = null; + + enable() { + this.spellchecker = new SpellCheckHandler(); + if (!isMac) { + this.spellchecker.attachToInput(); + this.spellchecker.switchLanguage(navigator.language); + } + + const contextMenuBuilder = new ContextMenuBuilder(this.spellchecker); + + new ContextMenuListener((info) => { // eslint-disable-line + contextMenuBuilder.showPopupMenu(info); + }); + } + + // TODO: this does not work yet, needs more testing + // switchLanguage(language) { + // if (language !== 'auto') { + // this.spellchecker.switchLanguage(language); + // } + // } +} + -- cgit v1.2.3-54-g00ecf