feat: 记忆歌词窗口位置 主窗口可关闭歌词窗口

This commit is contained in:
alger
2024-12-16 22:25:38 +08:00
parent 2037798fbe
commit 9a7d5a3834
2 changed files with 34 additions and 15 deletions
+25 -3
View File
@@ -1,14 +1,29 @@
const { BrowserWindow, screen, ipcRenderer } = require('electron');
const { BrowserWindow, screen } = require('electron');
const path = require('path');
const Store = require('electron-store');
const config = require('./config');
const store = new Store();
let lyricWindow = null;
const createWin = () => {
console.log('Creating lyric window');
// 获取保存的窗口位置
const windowBounds = store.get('lyricWindowBounds') || {};
const { x, y, width, height } = windowBounds;
// 获取屏幕尺寸
const { width: screenWidth, height: screenHeight } = screen.getPrimaryDisplay().workAreaSize;
// 验证保存的位置是否有效
const validPosition = x !== undefined && y !== undefined && x >= 0 && y >= 0 && x < screenWidth && y < screenHeight;
lyricWindow = new BrowserWindow({
width: 800,
height: 200,
width: width || 800,
height: height || 200,
x: validPosition ? x : undefined,
y: validPosition ? y : undefined,
frame: false,
show: false,
transparent: true,
@@ -107,6 +122,13 @@ const loadLyricWindow = (ipcMain, mainWin) => {
const newY = Math.max(0, Math.min(currentY + deltaY, screenHeight - windowHeight));
lyricWindow.setPosition(newX, newY);
// 保存新位置
store.set('lyricWindowBounds', {
...lyricWindow.getBounds(),
x: newX,
y: newY,
});
});
// 添加鼠标穿透事件处理