Merge pull request #526 from yuya-oc/reset-misspelled-state
Reset misspelled state after changing spelling language Close #524
This commit is contained in:
commit
07b2f8fc3b
|
@ -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() {
|
||||
const spellCheckerLocale = ipc.sendSync('get-spellchecker-locale');
|
||||
webFrame.setSpellCheckProvider(spellCheckerLocale, false, {
|
||||
|
@ -156,6 +167,7 @@ function setSpellChecker() {
|
|||
return res === null ? true : res;
|
||||
}
|
||||
});
|
||||
resetMisspelledState();
|
||||
}
|
||||
setSpellChecker();
|
||||
ipc.on('set-spellcheker', setSpellChecker);
|
||||
|
|
|
@ -542,6 +542,15 @@ app.on('ready', () => {
|
|||
ipcMain.on('get-spellchecker-locale', (event) => {
|
||||
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');
|
||||
|
||||
// Open the DevTools.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
const EventEmitter = require('events');
|
||||
const simpleSpellChecker = require('simple-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.
|
||||
|
||||
class SpellChecker {
|
||||
class SpellChecker extends EventEmitter {
|
||||
constructor(locale, dictDir, callback) {
|
||||
super();
|
||||
this.dict = null;
|
||||
this.locale = locale;
|
||||
simpleSpellChecker.getDictionary(locale, dictDir, (err, dict) => {
|
||||
if (err) {
|
||||
this.emit('error', err);
|
||||
if (callback) {
|
||||
callback(err);
|
||||
}
|
||||
} else {
|
||||
this.dict = dict;
|
||||
this.emit('ready');
|
||||
if (callback) {
|
||||
callback(null, this);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue