mirror of
https://github.com/zulip/zulip-desktop.git
synced 2025-11-05 14:35:18 +00:00
Toggle spell checker in the session rather than the webPreferences.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
@@ -3,6 +3,7 @@ import type {MenuProps, ServerConf} from "./types";
|
|||||||
|
|
||||||
export interface MainMessage {
|
export interface MainMessage {
|
||||||
"clear-app-settings": () => void;
|
"clear-app-settings": () => void;
|
||||||
|
"configure-spell-checker": () => void;
|
||||||
downloadFile: (url: string, downloadPath: string) => void;
|
downloadFile: (url: string, downloadPath: string) => void;
|
||||||
"error-reporting": () => void;
|
"error-reporting": () => void;
|
||||||
"fetch-user-agent": () => string;
|
"fetch-user-agent": () => string;
|
||||||
@@ -14,7 +15,6 @@ export interface MainMessage {
|
|||||||
"realm-name-changed": (serverURL: string, realmName: string) => void;
|
"realm-name-changed": (serverURL: string, realmName: string) => void;
|
||||||
"reload-full-app": () => void;
|
"reload-full-app": () => void;
|
||||||
"save-last-tab": (index: number) => void;
|
"save-last-tab": (index: number) => void;
|
||||||
"set-spellcheck-langs": () => void;
|
|
||||||
"switch-server-tab": (index: number) => void;
|
"switch-server-tab": (index: number) => void;
|
||||||
"toggle-app": () => void;
|
"toggle-app": () => void;
|
||||||
"toggle-badge-option": (newValue: boolean) => void;
|
"toggle-badge-option": (newValue: boolean) => void;
|
||||||
|
|||||||
@@ -174,14 +174,19 @@ function createMainWindow(): Electron.BrowserWindow {
|
|||||||
const ses = session.fromPartition("persist:webviewsession");
|
const ses = session.fromPartition("persist:webviewsession");
|
||||||
ses.setUserAgent(`ZulipElectron/${app.getVersion()} ${ses.getUserAgent()}`);
|
ses.setUserAgent(`ZulipElectron/${app.getVersion()} ${ses.getUserAgent()}`);
|
||||||
|
|
||||||
ipcMain.on("set-spellcheck-langs", () => {
|
function configureSpellChecker() {
|
||||||
ses.setSpellCheckerLanguages(
|
const enable = ConfigUtil.getConfigItem("enableSpellchecker", true);
|
||||||
process.platform === "darwin"
|
if (enable && process.platform !== "darwin") {
|
||||||
? // Work around https://github.com/electron/electron/issues/30215.
|
ses.setSpellCheckerLanguages(
|
||||||
mainWindow.webContents.session.getSpellCheckerLanguages()
|
ConfigUtil.getConfigItem("spellcheckerLanguages", null) ?? [],
|
||||||
: ConfigUtil.getConfigItem("spellcheckerLanguages", null) ?? [],
|
);
|
||||||
);
|
}
|
||||||
});
|
|
||||||
|
ses.setSpellCheckerEnabled(enable);
|
||||||
|
}
|
||||||
|
|
||||||
|
configureSpellChecker();
|
||||||
|
ipcMain.on("configure-spell-checker", configureSpellChecker);
|
||||||
|
|
||||||
AppMenu.setMenu({
|
AppMenu.setMenu({
|
||||||
tabs: [],
|
tabs: [],
|
||||||
|
|||||||
@@ -71,13 +71,7 @@ export default class WebView {
|
|||||||
? html``
|
? html``
|
||||||
: html`preload="${props.preload}"`}
|
: html`preload="${props.preload}"`}
|
||||||
partition="persist:webviewsession"
|
partition="persist:webviewsession"
|
||||||
webpreferences="
|
webpreferences="contextIsolation, worldSafeExecuteJavaScript=true"
|
||||||
contextIsolation,
|
|
||||||
spellcheck=${Boolean(
|
|
||||||
ConfigUtil.getConfigItem("enableSpellchecker", true),
|
|
||||||
)},
|
|
||||||
worldSafeExecuteJavaScript=true
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
</webview>
|
</webview>
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ export class ServerManagerView {
|
|||||||
await this.initTabs();
|
await this.initTabs();
|
||||||
this.initActions();
|
this.initActions();
|
||||||
this.registerIpcs();
|
this.registerIpcs();
|
||||||
ipcRenderer.send("set-spellcheck-langs");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadProxy(): Promise<void> {
|
async loadProxy(): Promise<void> {
|
||||||
|
|||||||
@@ -425,6 +425,7 @@ export function initGeneralSection({$root}: GeneralSectionProps): void {
|
|||||||
clickHandler: () => {
|
clickHandler: () => {
|
||||||
const newValue = !ConfigUtil.getConfigItem("enableSpellchecker", true);
|
const newValue = !ConfigUtil.getConfigItem("enableSpellchecker", true);
|
||||||
ConfigUtil.setConfigItem("enableSpellchecker", newValue);
|
ConfigUtil.setConfigItem("enableSpellchecker", newValue);
|
||||||
|
ipcRenderer.send("configure-spell-checker");
|
||||||
enableSpellchecker();
|
enableSpellchecker();
|
||||||
const spellcheckerLanguageInput: HTMLElement =
|
const spellcheckerLanguageInput: HTMLElement =
|
||||||
$root.querySelector("#spellcheck-langs")!;
|
$root.querySelector("#spellcheck-langs")!;
|
||||||
@@ -664,7 +665,7 @@ export function initGeneralSection({$root}: GeneralSectionProps): void {
|
|||||||
tagField.addEventListener("change", () => {
|
tagField.addEventListener("change", () => {
|
||||||
if (tagField.value.length === 0) {
|
if (tagField.value.length === 0) {
|
||||||
ConfigUtil.setConfigItem("spellcheckerLanguages", []);
|
ConfigUtil.setConfigItem("spellcheckerLanguages", []);
|
||||||
ipcRenderer.send("set-spellcheck-langs");
|
ipcRenderer.send("configure-spell-checker");
|
||||||
} else {
|
} else {
|
||||||
const data: unknown = JSON.parse(tagField.value);
|
const data: unknown = JSON.parse(tagField.value);
|
||||||
const spellLangs: string[] = z
|
const spellLangs: string[] = z
|
||||||
@@ -672,7 +673,7 @@ export function initGeneralSection({$root}: GeneralSectionProps): void {
|
|||||||
.parse(data)
|
.parse(data)
|
||||||
.map((elt) => languagePairs.get(elt.value)!);
|
.map((elt) => languagePairs.get(elt.value)!);
|
||||||
ConfigUtil.setConfigItem("spellcheckerLanguages", spellLangs);
|
ConfigUtil.setConfigItem("spellcheckerLanguages", spellLangs);
|
||||||
ipcRenderer.send("set-spellcheck-langs");
|
ipcRenderer.send("configure-spell-checker");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user