mirror of
https://github.com/Vencord/Vesktop.git
synced 2025-02-23 13:45:09 +00:00
feat: setTrafficLightPositions based on zoom factor
This commit is contained in:
parent
03c7ad4cc0
commit
81a24be5bc
1 changed files with 76 additions and 8 deletions
|
@ -154,6 +154,15 @@ async function clearData(win: BrowserWindow) {
|
||||||
|
|
||||||
type MenuItemList = Array<MenuItemConstructorOptions | false>;
|
type MenuItemList = Array<MenuItemConstructorOptions | false>;
|
||||||
|
|
||||||
|
function setTrafficLightPositions(win: BrowserWindow) {
|
||||||
|
const horizontalOffset = (7 * win.webContents.zoomLevel) + 10;
|
||||||
|
const verticalOffset = (5 * win.webContents.zoomLevel) + (10 / win.webContents.zoomFactor);
|
||||||
|
win.setWindowButtonPosition({
|
||||||
|
x: horizontalOffset,
|
||||||
|
y: verticalOffset
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
function initMenuBar(win: BrowserWindow) {
|
function initMenuBar(win: BrowserWindow) {
|
||||||
const isWindows = process.platform === "win32";
|
const isWindows = process.platform === "win32";
|
||||||
const isDarwin = process.platform === "darwin";
|
const isDarwin = process.platform === "darwin";
|
||||||
|
@ -235,15 +244,68 @@ function initMenuBar(win: BrowserWindow) {
|
||||||
click() {
|
click() {
|
||||||
app.quit();
|
app.quit();
|
||||||
}
|
}
|
||||||
},
|
|
||||||
// See https://github.com/electron/electron/issues/14742 and https://github.com/electron/electron/issues/5256
|
|
||||||
{
|
|
||||||
label: "Zoom in (hidden, hack for Qwertz and others)",
|
|
||||||
accelerator: "CmdOrCtrl+=",
|
|
||||||
role: "zoomIn",
|
|
||||||
visible: false
|
|
||||||
}
|
}
|
||||||
] satisfies MenuItemList;
|
] satisfies MenuItemList;
|
||||||
|
const viewSubMenu = [
|
||||||
|
{
|
||||||
|
label: "Reload",
|
||||||
|
accelerator: "Command+R",
|
||||||
|
click() {
|
||||||
|
win.webContents.reload();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Force Reload",
|
||||||
|
accelerator: "Command+Shift+R",
|
||||||
|
click() {
|
||||||
|
win.webContents.reloadIgnoringCache();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Toggle Developer Tools",
|
||||||
|
accelerator: "Alt+Command+I",
|
||||||
|
click() {
|
||||||
|
win.webContents.toggleDevTools();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "separator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Actual Size",
|
||||||
|
accelerator: "CmdOrCtrl+0",
|
||||||
|
click() {
|
||||||
|
win.webContents.zoomLevel = 0;
|
||||||
|
setTrafficLightPositions(win);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Zoom In",
|
||||||
|
accelerator: "CmdOrCtrl+=",
|
||||||
|
click() {
|
||||||
|
win.webContents.zoomLevel += 0.5;
|
||||||
|
setTrafficLightPositions(win);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Zoom Out",
|
||||||
|
accelerator: "CmdOrCtrl+-",
|
||||||
|
click() {
|
||||||
|
win.webContents.zoomLevel -= 0.5;
|
||||||
|
setTrafficLightPositions(win);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "separator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Toggle Full Screen",
|
||||||
|
role: "togglefullscreen",
|
||||||
|
click() {
|
||||||
|
win.setFullScreen(!win.isFullScreen());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
] satisfies MenuItemList;
|
||||||
|
|
||||||
const menu = Menu.buildFromTemplate([
|
const menu = Menu.buildFromTemplate([
|
||||||
{
|
{
|
||||||
|
@ -253,7 +315,10 @@ function initMenuBar(win: BrowserWindow) {
|
||||||
},
|
},
|
||||||
{ role: "fileMenu" },
|
{ role: "fileMenu" },
|
||||||
{ role: "editMenu" },
|
{ role: "editMenu" },
|
||||||
{ role: "viewMenu" },
|
{
|
||||||
|
role: "viewMenu",
|
||||||
|
...(isDarwin && { submenu: viewSubMenu })
|
||||||
|
},
|
||||||
{ role: "windowMenu" }
|
{ role: "windowMenu" }
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -477,9 +542,12 @@ export async function createWindows() {
|
||||||
|
|
||||||
mainWin = createMainWindow();
|
mainWin = createMainWindow();
|
||||||
|
|
||||||
|
|
||||||
mainWin.webContents.on("did-finish-load", () => {
|
mainWin.webContents.on("did-finish-load", () => {
|
||||||
splash.destroy();
|
splash.destroy();
|
||||||
|
|
||||||
|
setTrafficLightPositions(mainWin);
|
||||||
|
|
||||||
if (!startMinimized) {
|
if (!startMinimized) {
|
||||||
mainWin!.show();
|
mainWin!.show();
|
||||||
if (State.store.maximized && !isDeckGameMode) mainWin!.maximize();
|
if (State.store.maximized && !isDeckGameMode) mainWin!.maximize();
|
||||||
|
|
Loading…
Add table
Reference in a new issue