From bb70a25383e94d59e1a2a99bf3276ef4d4c3b5e0 Mon Sep 17 00:00:00 2001 From: lshw54 Date: Sun, 26 Apr 2026 13:49:47 +0800 Subject: [PATCH 1/3] fix(window): cap fitWindow height to 80% of screen for high-DPI displays (#238) On high-DPI displays (125%/150%), the window could grow larger than the visible screen area, clipping buttons off-screen. maxFitHeight now uses 80% of availHeight instead of availHeight - 50. Also reduced Settings and ManageAccount window size from 880x680 to 660x580 so they fit better on smaller/scaled displays. Closes #238 --- src/router/index.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/router/index.ts b/src/router/index.ts index a0eedfc..1fcb30c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -263,8 +263,8 @@ export const routes: RouteRecordRaw[] = [ meta: { titleKey: 'titleBar.settings', titleIcon: 'settings', - windowWidth: 880, - windowHeight: 680, + windowWidth: 660, + windowHeight: 580, }, /* * P12.4 D6: Settings page is reachable from both the @@ -312,8 +312,8 @@ export const routes: RouteRecordRaw[] = [ requiresAuth: true, titleKey: 'titleBar.manageAccount', titleIcon: 'manage_accounts', - windowWidth: 880, - windowHeight: 640, + windowWidth: 660, + windowHeight: 580, }, }, { @@ -543,7 +543,12 @@ export function installRouterGuards(router: Router, deps: RouterGuardDeps): void function maxFitHeight(): number { const avail = typeof window !== 'undefined' ? window.screen?.availHeight : undefined if (typeof avail === 'number' && avail > 0) { - return Math.max(300, avail - 50) + // Reserve space for the Windows taskbar + some breathing room. + // On high-DPI displays (125%/150%), availHeight is already in + // CSS pixels but the effective usable area is smaller because + // the OS reserves more physical pixels for chrome. Using 80% + // of availHeight ensures the window never clips off-screen. + return Math.max(300, Math.floor(avail * 0.8)) } return 900 } From 74d0620602da55936518867c13732716239b8368 Mon Sep 17 00:00:00 2001 From: lshw54 Date: Sun, 26 Apr 2026 14:10:42 +0800 Subject: [PATCH 2/3] fix(window): cap fitWindow to 80% screen height + tighten Settings spacing (#238) - maxFitHeight uses availHeight * 0.8 instead of availHeight - 50 so the window never clips off-screen on high-DPI displays - Reduce Settings/About scroll padding and container gap to eliminate excess whitespace below the footer Closes #238 --- src/pages/Settings.vue | 4 ++-- src/router/index.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue index 625a943..b9bdf0c 100644 --- a/src/pages/Settings.vue +++ b/src/pages/Settings.vue @@ -906,14 +906,14 @@ onMounted(() => { .settings__scroll { flex: 1; overflow-y: auto; - padding: 1.5rem; + padding: 1rem 1.5rem; } .settings__container { width: 100%; display: flex; flex-direction: column; - gap: 1rem; + gap: 0.75rem; } /* --------------- header --------------- */ diff --git a/src/router/index.ts b/src/router/index.ts index 1fcb30c..112d086 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -263,8 +263,8 @@ export const routes: RouteRecordRaw[] = [ meta: { titleKey: 'titleBar.settings', titleIcon: 'settings', - windowWidth: 660, - windowHeight: 580, + windowWidth: 880, + windowHeight: 680, }, /* * P12.4 D6: Settings page is reachable from both the @@ -312,8 +312,8 @@ export const routes: RouteRecordRaw[] = [ requiresAuth: true, titleKey: 'titleBar.manageAccount', titleIcon: 'manage_accounts', - windowWidth: 660, - windowHeight: 580, + windowWidth: 880, + windowHeight: 640, }, }, { From 99da378d40a77ae40effe06d2297d09a1f122d45 Mon Sep 17 00:00:00 2001 From: lshw54 Date: Sun, 26 Apr 2026 14:11:00 +0800 Subject: [PATCH 3/3] chore(about): add lshw54 to credits + tighten About scroll padding --- src/pages/About.vue | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/pages/About.vue b/src/pages/About.vue index c0b0b4b..1e82045 100644 --- a/src/pages/About.vue +++ b/src/pages/About.vue @@ -272,7 +272,7 @@ onMounted(() => {

{{ t('AppName') }}

- By Pungin and YCC3741 + By Pungin, YCC3741 and lshw54

{{ t('Version') }} @@ -319,6 +319,15 @@ onMounted(() => { YCC3741 + + + lshw54 + { .about__scroll { flex: 1; overflow-y: auto; - padding: 1.5rem; + padding: 1rem 1.5rem; } .about__container {