aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview/spellchecker.js
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2017-12-11 12:25:49 +0100
committerLibravatar Stefan Malzner <stefan@adlk.io>2017-12-11 12:25:49 +0100
commitc5b44c0259387030f9e3d31ae1db8903a95b6b67 (patch)
tree123e726411a33c2f0cea1eb6529d7462636c315e /src/webview/spellchecker.js
parentMerge pull request #421 from meetfranz/feature/bugfixing (diff)
downloadferdium-app-c5b44c0259387030f9e3d31ae1db8903a95b6b67.tar.gz
ferdium-app-c5b44c0259387030f9e3d31ae1db8903a95b6b67.tar.zst
ferdium-app-c5b44c0259387030f9e3d31ae1db8903a95b6b67.zip
always initialize ContextMenuBuilder but not spellchecker
Diffstat (limited to 'src/webview/spellchecker.js')
-rw-r--r--src/webview/spellchecker.js48
1 files changed, 30 insertions, 18 deletions
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js
index 5beb77e03..5704779d7 100644
--- a/src/webview/spellchecker.js
+++ b/src/webview/spellchecker.js
@@ -1,30 +1,42 @@
1import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; 1import { SpellCheckHandler } from 'electron-spellchecker';
2 2
3import { isMac } from '../environment'; 3import { isMac } from '../environment';
4 4
5export default class Spellchecker { 5export default class Spellchecker {
6 isEnabled = false; 6 isInitialized = false;
7 spellchecker = null; 7 handler = null;
8 initRetries = 0;
9
10 initialize() {
11 this.handler = new SpellCheckHandler();
8 12
9 enable() {
10 this.spellchecker = new SpellCheckHandler();
11 if (!isMac) { 13 if (!isMac) {
12 this.spellchecker.attachToInput(); 14 this.attach();
13 this.spellchecker.switchLanguage(navigator.language); 15 } else {
16 this.isInitialized = true;
14 } 17 }
18 }
15 19
16 const contextMenuBuilder = new ContextMenuBuilder(this.spellchecker); 20 attach() {
21 let initFailed = false;
17 22
18 new ContextMenuListener((info) => { // eslint-disable-line 23 if (this.initRetries > 3) {
19 contextMenuBuilder.showPopupMenu(info); 24 console.error('Could not initialize spellchecker');
20 }); 25 return;
21 } 26 }
22 27
23 // TODO: this does not work yet, needs more testing 28 try {
24 // switchLanguage(language) { 29 this.handler.attachToInput();
25 // if (language !== 'auto') { 30 this.handler.switchLanguage(navigator.language);
26 // this.spellchecker.switchLanguage(language); 31 } catch (err) {
27 // } 32 initFailed = true;
28 // } 33 this.initRetries = +1;
34 setTimeout(() => { this.attach(); console.warn('Spellchecker init failed, trying again in 5s'); }, 5000);
35 }
36
37 if (!initFailed) {
38 this.isInitialized = true;
39 }
40 }
29} 41}
30 42