mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-21 16:38:23 +01:00
Fix new window from menu bar (#91)
Fixes the New Window menu item so that it shows the new window after it loads and captures any errors that occur. Also adds a keyboard shortcut for new window and uses the native shortcut for close window.
This commit is contained in:
parent
4c45bca56b
commit
50a4074c39
@ -11,6 +11,7 @@ import { debounce } from "throttle-debounce";
|
||||
import { getBackendHostPort } from "../frontend/app/store/global";
|
||||
import * as services from "../frontend/app/store/services";
|
||||
import * as keyutil from "../frontend/util/keyutil";
|
||||
import { fireAndForget } from "../frontend/util/util";
|
||||
|
||||
const electronApp = electron.app;
|
||||
const isDev = process.env.WAVETERM_DEV;
|
||||
@ -460,10 +461,11 @@ electron.ipcMain.on("getCursorPoint", (event) => {
|
||||
async function createNewWaveWindow() {
|
||||
let clientData = await services.ClientService.GetClientData();
|
||||
const newWindow = await services.ClientService.MakeWindow();
|
||||
createBrowserWindow(clientData.oid, newWindow);
|
||||
const newBrowserWindow = createBrowserWindow(clientData.oid, newWindow);
|
||||
newBrowserWindow.show();
|
||||
}
|
||||
|
||||
electron.ipcMain.on("openNewWindow", createNewWaveWindow);
|
||||
electron.ipcMain.on("openNewWindow", () => fireAndForget(createNewWaveWindow));
|
||||
|
||||
electron.ipcMain.on("contextmenu-show", (event, menuDefArr: ElectronContextMenuItem[], { x, y }) => {
|
||||
if (menuDefArr == null || menuDefArr.length == 0) {
|
||||
@ -498,10 +500,11 @@ function makeAppMenu() {
|
||||
let fileMenu: Electron.MenuItemConstructorOptions[] = [];
|
||||
fileMenu.push({
|
||||
label: "New Window",
|
||||
click: createNewWaveWindow,
|
||||
accelerator: "CommandOrControl+N",
|
||||
click: () => fireAndForget(createNewWaveWindow),
|
||||
});
|
||||
fileMenu.push({
|
||||
label: "Close Window",
|
||||
role: "close",
|
||||
click: () => {
|
||||
electron.BrowserWindow.getFocusedWindow()?.close();
|
||||
},
|
||||
|
@ -89,4 +89,14 @@ function makeIconClass(icon: string, fw: boolean): string {
|
||||
return null;
|
||||
}
|
||||
|
||||
export { base64ToArray, base64ToString, isBlank, jsonDeepEqual, makeIconClass, stringToBase64 };
|
||||
/**
|
||||
* A wrapper function for running a promise and catching any errors
|
||||
* @param f The promise to run
|
||||
*/
|
||||
function fireAndForget(f: () => Promise<any>) {
|
||||
f().catch((e) => {
|
||||
console.log("fireAndForget error", e);
|
||||
});
|
||||
}
|
||||
|
||||
export { base64ToArray, base64ToString, fireAndForget, isBlank, jsonDeepEqual, makeIconClass, stringToBase64 };
|
||||
|
Loading…
Reference in New Issue
Block a user