mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-04-03 14:20:50 +08:00
fix: 设置桌面端最小窗口尺寸为 900x640 防止内容截断
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user