fix: 设置桌面端最小窗口尺寸为 900x640 防止内容截断

This commit is contained in:
alger
2026-03-22 16:48:01 +08:00
parent 2f05663093
commit 7f0b3c6469
2 changed files with 13 additions and 15 deletions

View File

@@ -13,9 +13,11 @@ export const DEFAULT_MINI_EXPANDED_HEIGHT = 400;
// 用于存储窗口状态的键名 // 用于存储窗口状态的键名
export const WINDOW_STATE_KEY = 'windowState'; export const WINDOW_STATE_KEY = 'windowState';
// 最小窗口尺寸 // 最小窗口尺寸(确保内容不会被截断)
let MIN_WIDTH = Math.round(DEFAULT_MAIN_WIDTH * 0.5); const ABSOLUTE_MIN_WIDTH = 900;
let MIN_HEIGHT = Math.round(DEFAULT_MAIN_HEIGHT * 0.5); const ABSOLUTE_MIN_HEIGHT = 640;
let MIN_WIDTH = ABSOLUTE_MIN_WIDTH;
let MIN_HEIGHT = ABSOLUTE_MIN_HEIGHT;
// 标记IPC处理程序是否已注册 // 标记IPC处理程序是否已注册
let ipcHandlersRegistered = false; let ipcHandlersRegistered = false;
@@ -98,19 +100,16 @@ class WindowSizeManager {
try { try {
const { width: workAreaWidth, height: workAreaHeight } = screen.getPrimaryDisplay().workArea; 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_WIDTH = Math.max(ABSOLUTE_MIN_WIDTH, Math.round(workAreaWidth * 0.3));
MIN_HEIGHT = Math.min( MIN_HEIGHT = Math.max(ABSOLUTE_MIN_HEIGHT, Math.round(workAreaHeight * 0.3));
Math.round(DEFAULT_MAIN_HEIGHT * 0.5),
Math.round(workAreaHeight * 0.3)
);
console.log(`设置最小窗口尺寸: ${MIN_WIDTH}x${MIN_HEIGHT}`); console.log(`设置最小窗口尺寸: ${MIN_WIDTH}x${MIN_HEIGHT}`);
} catch (error) { } catch (error) {
console.error('初始化最小窗口尺寸失败:', error); console.error('初始化最小窗口尺寸失败:', error);
// 使用默认值 // 使用默认值
MIN_WIDTH = Math.round(DEFAULT_MAIN_WIDTH * 0.5); MIN_WIDTH = ABSOLUTE_MIN_WIDTH;
MIN_HEIGHT = Math.round(DEFAULT_MAIN_HEIGHT * 0.5); MIN_HEIGHT = ABSOLUTE_MIN_HEIGHT;
} }
} }

View File

@@ -15,6 +15,7 @@ import { join } from 'path';
import { import {
applyContentZoom, applyContentZoom,
applyInitialState, applyInitialState,
calculateMinimumWindowSize,
DEFAULT_MAIN_HEIGHT, DEFAULT_MAIN_HEIGHT,
DEFAULT_MAIN_WIDTH, DEFAULT_MAIN_WIDTH,
DEFAULT_MINI_HEIGHT, DEFAULT_MINI_HEIGHT,
@@ -204,10 +205,8 @@ export function initializeWindowManager() {
console.log('从迷你模式恢复,使用保存的状态:', JSON.stringify(preMiniModeState)); console.log('从迷你模式恢复,使用保存的状态:', JSON.stringify(preMiniModeState));
// 设置适当的最小尺寸 // 设置适当的最小尺寸
win.setMinimumSize( const { minWidth, minHeight } = calculateMinimumWindowSize();
Math.max(DEFAULT_MAIN_WIDTH * 0.5, 600), win.setMinimumSize(minWidth, minHeight);
Math.max(DEFAULT_MAIN_HEIGHT * 0.5, 400)
);
// 恢复窗口状态 // 恢复窗口状态
win.setAlwaysOnTop(false); win.setAlwaysOnTop(false);