Reset misspelled state after changing spelling language
This commit is contained in:
@@ -148,6 +148,17 @@ notification.override({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function resetMisspelledState() {
|
||||||
|
ipc.once('spellchecker-is-ready', () => {
|
||||||
|
const element = document.activeElement;
|
||||||
|
if (element) {
|
||||||
|
element.blur();
|
||||||
|
element.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ipc.send('reply-on-spellchecker-is-ready');
|
||||||
|
}
|
||||||
|
|
||||||
function setSpellChecker() {
|
function setSpellChecker() {
|
||||||
const spellCheckerLocale = ipc.sendSync('get-spellchecker-locale');
|
const spellCheckerLocale = ipc.sendSync('get-spellchecker-locale');
|
||||||
webFrame.setSpellCheckProvider(spellCheckerLocale, false, {
|
webFrame.setSpellCheckProvider(spellCheckerLocale, false, {
|
||||||
@@ -156,6 +167,7 @@ function setSpellChecker() {
|
|||||||
return res === null ? true : res;
|
return res === null ? true : res;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
resetMisspelledState();
|
||||||
}
|
}
|
||||||
setSpellChecker();
|
setSpellChecker();
|
||||||
ipc.on('set-spellcheker', setSpellChecker);
|
ipc.on('set-spellcheker', setSpellChecker);
|
||||||
|
@@ -542,6 +542,15 @@ app.on('ready', () => {
|
|||||||
ipcMain.on('get-spellchecker-locale', (event) => {
|
ipcMain.on('get-spellchecker-locale', (event) => {
|
||||||
event.returnValue = config.spellCheckerLocale;
|
event.returnValue = config.spellCheckerLocale;
|
||||||
});
|
});
|
||||||
|
ipcMain.on('reply-on-spellchecker-is-ready', (event) => {
|
||||||
|
if (spellChecker.isReady()) {
|
||||||
|
event.sender.send('spellchecker-is-ready');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
spellChecker.once('ready', () => {
|
||||||
|
event.sender.send('spellchecker-is-ready');
|
||||||
|
});
|
||||||
|
});
|
||||||
ipcMain.emit('update-dict');
|
ipcMain.emit('update-dict');
|
||||||
|
|
||||||
// Open the DevTools.
|
// Open the DevTools.
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const EventEmitter = require('events');
|
||||||
const simpleSpellChecker = require('simple-spellchecker');
|
const simpleSpellChecker = require('simple-spellchecker');
|
||||||
|
|
||||||
/// Following approach for contractions is derived from electron-spellchecker.
|
/// Following approach for contractions is derived from electron-spellchecker.
|
||||||
@@ -26,17 +27,20 @@ const contractionMap = contractions.reduce((acc, word) => {
|
|||||||
|
|
||||||
/// End: derived from electron-spellchecker.
|
/// End: derived from electron-spellchecker.
|
||||||
|
|
||||||
class SpellChecker {
|
class SpellChecker extends EventEmitter {
|
||||||
constructor(locale, dictDir, callback) {
|
constructor(locale, dictDir, callback) {
|
||||||
|
super();
|
||||||
this.dict = null;
|
this.dict = null;
|
||||||
this.locale = locale;
|
this.locale = locale;
|
||||||
simpleSpellChecker.getDictionary(locale, dictDir, (err, dict) => {
|
simpleSpellChecker.getDictionary(locale, dictDir, (err, dict) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
this.emit('error', err);
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback(err);
|
callback(err);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.dict = dict;
|
this.dict = dict;
|
||||||
|
this.emit('ready');
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback(null, this);
|
callback(null, this);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user