修复软件关闭时的bug

master
qubiaobiao 2024-04-08 09:25:44 +08:00
parent 78e1b7128a
commit d06c66ad39
1 changed files with 24 additions and 48 deletions

View File

@ -121,44 +121,18 @@ const getDisplayOrigin = (display: any) => {
return origin
}
var windows:Array<BrowserWindow> = [];
function createWindow(option: any, url: any) {
const win = new BrowserWindow(option)
if (URl_REGEX.test(url)) {
win.loadURL(url)
} else {
win.loadFile(url)
}
const isWindows = process.platform === 'win32';
let needsFocusFix = false;
let triggeringProgrammaticBlur = false;
//弹出警报窗口后 input获取不到焦点
win.on('blur', (event: any) => {
if(!triggeringProgrammaticBlur) {
needsFocusFix = true;
}
})
win.on('focus', (event: any) => {
if(isWindows && needsFocusFix) {
needsFocusFix = false;
triggeringProgrammaticBlur = true;
//弹出弹窗后重新聚焦导致windows任务栏显示重新隐藏底部windows任务栏
win.minimize(); //最小化函数
win.restore(); //取消最小化函数(从最小化窗口还原函数)
setTimeout(function () {
win.blur(); //失去焦点函数
win.focus(); //获取焦点函数
setTimeout(function () {
triggeringProgrammaticBlur = false;
}, 100);
}, 100);
}
})
if(process.env.NODE_ENV === 'development') win.webContents.openDevTools()
windows.push(win);
}
ipcMain.on('CLOSE', (event) => {
const res = dialog.showMessageBox({
@ -173,13 +147,15 @@ function createWindow(option: any, url: any) {
res.then((data)=>{
if(data.response == 0){
win.close()
windows.forEach((key:BrowserWindow) => {
key.close();
});
windows = [];
}else{
console.log('not close software')
}
})
})
}
app.whenReady().then(() => {
launch()