Vanessa 2023-10-08 11:01:54 +08:00
parent 6f58d1387f
commit e949458180
3 changed files with 6 additions and 11 deletions

View file

@ -696,7 +696,7 @@ app.whenReady().then(() => {
exitApp(port); exitApp(port);
}); });
ipcMain.on("siyuan-open-window", (event, data) => { ipcMain.on("siyuan-open-window", (event, data) => {
const mainWindow = BrowserWindow.fromId(data.id); const mainWindow = BrowserWindow.getFocusedWindow() || BrowserWindow.getAllWindows()[0];
const mainBounds = mainWindow.getBounds(); const mainBounds = mainWindow.getBounds();
const mainScreen = screen.getDisplayNearestPoint({x: mainBounds.x, y: mainBounds.y}); const mainScreen = screen.getDisplayNearestPoint({x: mainBounds.x, y: mainBounds.y});
const win = new BrowserWindow({ const win = new BrowserWindow({
@ -753,9 +753,9 @@ app.whenReady().then(() => {
}); });
} }
}); });
ipcMain.on("siyuan-init", async (event, data) => { ipcMain.handle("siyuan-init", async (event, data) => {
const exitWS = workspaces.find(item => { const exitWS = workspaces.find(item => {
if (data.id === item.id && item.workspaceDir) { if (event.sender.id === item.browserWindow.webContents.id && item.workspaceDir) {
if (item.tray && "win32" === process.platform || "linux" === process.platform) { if (item.tray && "win32" === process.platform || "linux" === process.platform) {
// Tray menu text does not change with the appearance language https://github.com/siyuan-note/siyuan/issues/7935 // Tray menu text does not change with the appearance language https://github.com/siyuan-note/siyuan/issues/7935
resetTrayMenu(item.tray, data.languages, item.browserWindow); resetTrayMenu(item.tray, data.languages, item.browserWindow);
@ -771,14 +771,14 @@ app.whenReady().then(() => {
// 系统托盘 // 系统托盘
tray = new Tray(path.join(appDir, "stage", "icon-large.png")); tray = new Tray(path.join(appDir, "stage", "icon-large.png"));
tray.setToolTip(`${path.basename(data.workspaceDir)} - SiYuan v${appVer}`); tray.setToolTip(`${path.basename(data.workspaceDir)} - SiYuan v${appVer}`);
const mainWindow = BrowserWindow.fromId(data.id); const mainWindow = BrowserWindow.fromId(BrowserWindow.getAllWindows().find((win) => win.webContents.id === event.sender.id).id);
resetTrayMenu(tray, data.languages, mainWindow); resetTrayMenu(tray, data.languages, mainWindow);
tray.on("click", () => { tray.on("click", () => {
showHideWindow(tray, data.languages, mainWindow); showHideWindow(tray, data.languages, mainWindow);
}); });
} }
workspaces.find(item => { workspaces.find(item => {
if (data.id === item.id) { if (!item.workspaceDir) {
item.workspaceDir = data.workspaceDir; item.workspaceDir = data.workspaceDir;
item.tray = tray; item.tray = tray;
return true; return true;

View file

@ -111,10 +111,9 @@ export const onGetConfig = (isStart: boolean, app: App) => {
}); });
} }
/// #if !BROWSER /// #if !BROWSER
ipcRenderer.send(Constants.SIYUAN_INIT, { ipcRenderer.invoke(Constants.SIYUAN_INIT, {
languages: window.siyuan.languages["_trayMenu"], languages: window.siyuan.languages["_trayMenu"],
workspaceDir: window.siyuan.config.system.workspaceDir, workspaceDir: window.siyuan.config.system.workspaceDir,
id: getCurrentWindow().id,
port: location.port port: location.port
}); });
webFrame.setZoomFactor(window.siyuan.storage[Constants.LOCAL_ZOOM]); webFrame.setZoomFactor(window.siyuan.storage[Constants.LOCAL_ZOOM]);

View file

@ -1,7 +1,6 @@
import {layoutToJSON} from "../layout/util"; import {layoutToJSON} from "../layout/util";
/// #if !BROWSER /// #if !BROWSER
import {ipcRenderer} from "electron"; import {ipcRenderer} from "electron";
import {getCurrentWindow} from "@electron/remote";
/// #endif /// #endif
import {Constants} from "../constants"; import {Constants} from "../constants";
import {Tab} from "../layout/Tab"; import {Tab} from "../layout/Tab";
@ -25,7 +24,6 @@ export const openNewWindow = (tab: Tab, options: windowOptions = {}) => {
position: options.position, position: options.position,
width: options.width, width: options.width,
height: options.height, height: options.height,
id: getCurrentWindow().id,
// 需要 encode 否则 https://github.com/siyuan-note/siyuan/issues/9343 // 需要 encode 否则 https://github.com/siyuan-note/siyuan/issues/9343
url: `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${encodeURIComponent(JSON.stringify(json))}` url: `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${encodeURIComponent(JSON.stringify(json))}`
}); });
@ -66,7 +64,6 @@ export const openNewWindowById = (id: string, options: windowOptions = {}) => {
position: options.position, position: options.position,
width: options.width, width: options.width,
height: options.height, height: options.height,
id: getCurrentWindow().id,
url: `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${encodeURIComponent(JSON.stringify(json))}` url: `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${encodeURIComponent(JSON.stringify(json))}`
}); });
/// #endif /// #endif
@ -81,7 +78,6 @@ export const openNewWindowById = (id: string, options: windowOptions = {}) => {
position: options.position, position: options.position,
width: options.width, width: options.width,
height: options.height, height: options.height,
id: getCurrentWindow().id,
url: `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${encodeURIComponent(JSON.stringify(json))}` url: `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${encodeURIComponent(JSON.stringify(json))}`
}); });
/// #endif /// #endif