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==`,
|
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}`);
|
log = (message) => console.log(`${LOG_PREFIX}: ${message}`);
|
||||||
|
|
||||||
let tray, plugin;
|
let tray, plugin, isQuitting = false;
|
||||||
const obsidian = require("obsidian"),
|
const obsidian = require("obsidian"),
|
||||||
{ app, Tray, Menu } = require("electron").remote,
|
{ app, Tray, Menu } = require("electron").remote,
|
||||||
{ nativeImage, BrowserWindow } = require("electron").remote,
|
{ nativeImage, BrowserWindow } = require("electron").remote,
|
||||||
@ -97,8 +97,14 @@ const vaultWindows = new Set(),
|
|||||||
else showWindows();
|
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) => {
|
onWindowUnload = (event) => {
|
||||||
|
// allow window to close during app quit
|
||||||
|
if (isQuitting) return;
|
||||||
log(LOG_WINDOW_CLOSE);
|
log(LOG_WINDOW_CLOSE);
|
||||||
getCurrentWindow().hide();
|
getCurrentWindow().hide();
|
||||||
event.stopImmediatePropagation();
|
event.stopImmediatePropagation();
|
||||||
@ -113,6 +119,13 @@ const onWindowClose = (event) => event.preventDefault(),
|
|||||||
// from renderer, so won't prevent close by itself, but counteracts
|
// from renderer, so won't prevent close by itself, but counteracts
|
||||||
// the 3-second delayed window force close in obsidian.asar/main.js
|
// the 3-second delayed window force close in obsidian.asar/main.js
|
||||||
getCurrentWindow().on("close", onWindowClose);
|
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 = () => {
|
allowWindowClose = () => {
|
||||||
getCurrentWindow().removeListener("close", onWindowClose);
|
getCurrentWindow().removeListener("close", onWindowClose);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user