From 532ef77b6f1ef5ddb687b382bb3c61faf7179b97 Mon Sep 17 00:00:00 2001 From: Ishan Karmakar Date: Sun, 31 May 2026 22:13:02 -0500 Subject: [PATCH] fix: Fix tray window continuously getting smaller --- src/config.ts | 2 ++ src/main.ts | 17 ++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/config.ts b/src/config.ts index d85c862..7da98f5 100644 --- a/src/config.ts +++ b/src/config.ts @@ -2,6 +2,8 @@ export const MANAGEMENT_URL = 'https://vpn.vyntehome.com'; export const GATEWAY_HOST = new URL(MANAGEMENT_URL).host; export const APP_NAME = "Vynte Connect"; export const POLL_INTERVAL_MS = 5000; +export const WINDOW_WIDTH = 384; +export const WINDOW_HEIGHT = 420; export const DEFAULT_STATUS = { state: "checking", title: `Checking ${GATEWAY_HOST}`, diff --git a/src/main.ts b/src/main.ts index 2a73ebf..a2fbb50 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,7 @@ import { app, BrowserWindow, ipcMain, nativeImage, shell, Tray } from 'electron'; import path from 'node:path'; import started from 'electron-squirrel-startup'; -import { APP_NAME, DEFAULT_STATUS, GATEWAY_HOST, MANAGEMENT_URL, POLL_INTERVAL_MS } from './config'; +import { APP_NAME, DEFAULT_STATUS, GATEWAY_HOST, MANAGEMENT_URL, POLL_INTERVAL_MS, WINDOW_HEIGHT, WINDOW_WIDTH } from './config'; import { NetBirdClient } from './netbird'; import { baseStatus, normalizeStatus } from './status'; @@ -145,8 +145,8 @@ async function logout() { function createWindow() { window = new BrowserWindow({ - width: 384, - height: 430, + width: WINDOW_WIDTH, + height: WINDOW_HEIGHT, show: false, resizable: false, frame: false, @@ -171,10 +171,13 @@ function createWindow() { function showWindow() { const bounds = tray.getBounds(); - const windowBounds = window.getBounds(); - const x = Math.round(bounds.x + bounds.width - windowBounds.width); - const y = Math.round(bounds.y - windowBounds.height - 8); - window.setPosition(Math.max(x, 0), Math.max(y, 0), false); + const x = Math.round(bounds.x - WINDOW_WIDTH); + const y = Math.round(bounds.y - WINDOW_HEIGHT); + window.setBounds({ + width: WINDOW_WIDTH, + height: WINDOW_HEIGHT, + x, y + }); window.show(); window.focus(); broadcastStatus();