mirror of
https://github.com/dragonwocky/obsidian-tray.git
synced 2025-12-04 06:40:14 +11:00
Merge 9a4c48d9ea into ac353bb5a6
This commit is contained in:
commit
0e3fb33bf6
17
main.js
17
main.js
@ -36,7 +36,7 @@ const LOG_PREFIX = "obsidian-tray",
|
||||
OBSIDIAN_BASE64_ICON = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHZSURBVDhPlZKxTxRBFMa/XZcF7nIG7mjxjoRCwomJxgsFdhaASqzQxFDzB1AQKgstLGxIiBQGJBpiCCGx8h+wgYaGgAWNd0dyHofeEYVwt/PmOTMZV9aDIL/s5pvZvPfN9yaL/+HR3eXcypta0m4juFbP5GHuXc9IbunDFc9db/G81/ZzhDMN7g8td47mll4R5BfHwZN4LOaA+fHa259PbUmIYzWkt3e2NZNo3/V9v1vvU6kkstk+tLW3ItUVr/m+c3N8MlkwxYqmBFcbwUQQCNOcyVzDwEAWjuPi5DhAMV/tKOYPX5hCyz8Gz1zX5SmWjBvZfmTSaRBJkGAIoxJHv+pVW2yIGNxOJ8bUVNcFEWLxuG1ia6JercTbttwQTeDwPS0kCMXiXtgk/jQrFUw7ptYSMWApF40yo/ytjHq98fdk3ayVE+cn2CxMb6ruz9qAJKFUKoWza1VJSi/n0+ffgYHdWW2gHuxXymg0gjCB0sjpmiaDnkL3RzDyzLqBUKns2ztQqUR0fk2TwSrGSf1eczqF5vsPZRCQSSAFLk6gqctgQRkc6TWRQLV2YMYQki9OoNkqzFQ9r+WOGuW5CrJbOzyAlPKr6MSGLbkcDwbf35oY/jRkt6cAfgNwowruAMz9AgAAAABJRU5ErkJggg==`,
|
||||
log = (message) => console.log(`${LOG_PREFIX}: ${message}`);
|
||||
|
||||
let tray, plugin;
|
||||
let tray, plugin, isQuitting = false;
|
||||
const obsidian = require("obsidian"),
|
||||
{ app, Tray, Menu } = require("electron").remote,
|
||||
{ nativeImage, BrowserWindow } = require("electron").remote,
|
||||
@ -97,8 +97,14 @@ const vaultWindows = new Set(),
|
||||
else showWindows();
|
||||
};
|
||||
|
||||
const onWindowClose = (event) => event.preventDefault(),
|
||||
const onWindowClose = (event) => {
|
||||
// allow window to close during app quit (e.g., system shutdown)
|
||||
// to prevent blocking macOS shutdown process
|
||||
if (!isQuitting) event.preventDefault();
|
||||
},
|
||||
onWindowUnload = (event) => {
|
||||
// allow window to close during app quit
|
||||
if (isQuitting) return;
|
||||
log(LOG_WINDOW_CLOSE);
|
||||
getCurrentWindow().hide();
|
||||
event.stopImmediatePropagation();
|
||||
@ -113,6 +119,13 @@ const onWindowClose = (event) => event.preventDefault(),
|
||||
// from renderer, so won't prevent close by itself, but counteracts
|
||||
// the 3-second delayed window force close in obsidian.asar/main.js
|
||||
getCurrentWindow().on("close", onWindowClose);
|
||||
// listen for app quit events to allow proper shutdown
|
||||
// especially important for macOS system shutdown
|
||||
app.on("before-quit", () => {
|
||||
log("preparing for app quit");
|
||||
isQuitting = true;
|
||||
allowWindowClose();
|
||||
});
|
||||
},
|
||||
allowWindowClose = () => {
|
||||
getCurrentWindow().removeListener("close", onWindowClose);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user