diff --git a/src/main/modules/window-size.ts b/src/main/modules/window-size.ts index 5a6246f..b4c1b0e 100644 --- a/src/main/modules/window-size.ts +++ b/src/main/modules/window-size.ts @@ -13,9 +13,11 @@ export const DEFAULT_MINI_EXPANDED_HEIGHT = 400; // 用于存储窗口状态的键名 export const WINDOW_STATE_KEY = 'windowState'; -// 最小窗口尺寸 -let MIN_WIDTH = Math.round(DEFAULT_MAIN_WIDTH * 0.5); -let MIN_HEIGHT = Math.round(DEFAULT_MAIN_HEIGHT * 0.5); +// 最小窗口尺寸(确保内容不会被截断) +const ABSOLUTE_MIN_WIDTH = 900; +const ABSOLUTE_MIN_HEIGHT = 640; +let MIN_WIDTH = ABSOLUTE_MIN_WIDTH; +let MIN_HEIGHT = ABSOLUTE_MIN_HEIGHT; // 标记IPC处理程序是否已注册 let ipcHandlersRegistered = false; @@ -98,19 +100,16 @@ class WindowSizeManager { try { const { width: workAreaWidth, height: workAreaHeight } = screen.getPrimaryDisplay().workArea; - // 根据工作区大小设置合理的最小尺寸 - MIN_WIDTH = Math.min(Math.round(DEFAULT_MAIN_WIDTH * 0.5), Math.round(workAreaWidth * 0.3)); - MIN_HEIGHT = Math.min( - Math.round(DEFAULT_MAIN_HEIGHT * 0.5), - Math.round(workAreaHeight * 0.3) - ); + // 根据工作区大小设置合理的最小尺寸,但不低于绝对最小值 + MIN_WIDTH = Math.max(ABSOLUTE_MIN_WIDTH, Math.round(workAreaWidth * 0.3)); + MIN_HEIGHT = Math.max(ABSOLUTE_MIN_HEIGHT, Math.round(workAreaHeight * 0.3)); console.log(`设置最小窗口尺寸: ${MIN_WIDTH}x${MIN_HEIGHT}`); } catch (error) { console.error('初始化最小窗口尺寸失败:', error); // 使用默认值 - MIN_WIDTH = Math.round(DEFAULT_MAIN_WIDTH * 0.5); - MIN_HEIGHT = Math.round(DEFAULT_MAIN_HEIGHT * 0.5); + MIN_WIDTH = ABSOLUTE_MIN_WIDTH; + MIN_HEIGHT = ABSOLUTE_MIN_HEIGHT; } } diff --git a/src/main/modules/window.ts b/src/main/modules/window.ts index 9a9c93d..048f6fc 100644 --- a/src/main/modules/window.ts +++ b/src/main/modules/window.ts @@ -15,6 +15,7 @@ import { join } from 'path'; import { applyContentZoom, applyInitialState, + calculateMinimumWindowSize, DEFAULT_MAIN_HEIGHT, DEFAULT_MAIN_WIDTH, DEFAULT_MINI_HEIGHT, @@ -204,10 +205,8 @@ export function initializeWindowManager() { console.log('从迷你模式恢复,使用保存的状态:', JSON.stringify(preMiniModeState)); // 设置适当的最小尺寸 - win.setMinimumSize( - Math.max(DEFAULT_MAIN_WIDTH * 0.5, 600), - Math.max(DEFAULT_MAIN_HEIGHT * 0.5, 400) - ); + const { minWidth, minHeight } = calculateMinimumWindowSize(); + win.setMinimumSize(minWidth, minHeight); // 恢复窗口状态 win.setAlwaysOnTop(false);