@@ -11,22 +11,24 @@ import loginWindow from "../windows/login-window";
1111 * @returns void
1212 */
1313const initWindowsIpc = ( ) : void => {
14- // 相关窗口
15- const mainWin = mainWindow . getWin ( ) ;
16- const loadWin = loadWindow . getWin ( ) ;
1714 // store
1815 const store = useStore ( ) ;
1916
2017 // 当前窗口状态
2118 ipcMain . on ( "win-state" , ( event ) => {
19+ const mainWin = mainWindow . getWin ( ) ;
20+ if ( ! mainWin ) return ;
2221 event . returnValue = mainWin ?. isMaximized ( ) ;
2322 } ) ;
2423
2524 // 加载完成
2625 ipcMain . on ( "win-loaded" , ( ) => {
26+ const loadWin = loadWindow . getWin ( ) ;
27+ const mainWin = mainWindow . getWin ( ) ;
2728 if ( loadWin && ! loadWin . isDestroyed ( ) ) loadWin . destroy ( ) ;
2829 const isMaximized = store . get ( "window" ) ?. maximized ;
2930 if ( isMaximized ) mainWin ?. maximize ( ) ;
31+ if ( ! mainWin ) return ;
3032 mainWin ?. show ( ) ;
3133 mainWin ?. focus ( ) ;
3234 // 解决窗口不立即显示
@@ -45,34 +47,37 @@ const initWindowsIpc = (): void => {
4547
4648 // 最小化
4749 ipcMain . on ( "win-min" , ( event ) => {
50+ const mainWin = mainWindow . getWin ( ) ;
51+ if ( ! mainWin ) return ;
4852 event . preventDefault ( ) ;
4953 mainWin ?. minimize ( ) ;
5054 } ) ;
5155
5256 // 最大化
5357 ipcMain . on ( "win-max" , ( ) => {
58+ const mainWin = mainWindow . getWin ( ) ;
59+ if ( ! mainWin ) return ;
5460 mainWin ?. maximize ( ) ;
5561 } ) ;
5662
5763 // 还原
5864 ipcMain . on ( "win-restore" , ( ) => {
65+ const mainWin = mainWindow . getWin ( ) ;
66+ if ( ! mainWin ) return ;
5967 mainWin ?. restore ( ) ;
6068 } ) ;
6169
62- // 关闭
63- ipcMain . on ( "win-close" , ( event ) => {
64- event . preventDefault ( ) ;
65- mainWin ?. close ( ) ;
66- app . quit ( ) ;
67- } ) ;
68-
6970 // 隐藏
7071 ipcMain . on ( "win-hide" , ( ) => {
72+ const mainWin = mainWindow . getWin ( ) ;
73+ if ( ! mainWin ) return ;
7174 mainWin ?. hide ( ) ;
7275 } ) ;
7376
7477 // 显示
7578 ipcMain . on ( "win-show" , ( ) => {
79+ const mainWin = mainWindow . getWin ( ) ;
80+ if ( ! mainWin ) return ;
7681 mainWin ?. show ( ) ;
7782 mainWin ?. focus ( ) ;
7883 } ) ;
@@ -85,11 +90,15 @@ const initWindowsIpc = (): void => {
8590
8691 // 向主窗口发送事件
8792 ipcMain . on ( "send-to-mainWin" , ( _ , eventName , ...args ) => {
88- mainWin ?. webContents . send ( eventName , ...args ) ;
93+ const mainWin = mainWindow . getWin ( ) ;
94+ if ( ! mainWin || mainWin . isDestroyed ( ) || mainWin . webContents . isDestroyed ( ) ) return ;
95+ mainWin . webContents . send ( eventName , ...args ) ;
8996 } ) ;
9097
9198 // 显示进度
9299 ipcMain . on ( "set-bar" , ( _event , val : number | "none" | "indeterminate" | "error" | "paused" ) => {
100+ const mainWin = mainWindow . getWin ( ) ;
101+ if ( ! mainWin ) return ;
93102 switch ( val ) {
94103 case "none" :
95104 mainWin ?. setProgressBar ( - 1 ) ;
@@ -115,17 +124,25 @@ const initWindowsIpc = (): void => {
115124
116125 // 开启控制台
117126 ipcMain . on ( "open-dev-tools" , ( ) => {
127+ const mainWin = mainWindow . getWin ( ) ;
128+ if ( ! mainWin ) return ;
118129 mainWin ?. webContents . openDevTools ( {
119130 title : "SPlayer DevTools" ,
120131 mode : isDev ? "right" : "detach" ,
121132 } ) ;
122133 } ) ;
123134
124135 // 开启登录窗口
125- ipcMain . on ( "open-login-web" , ( ) => loginWindow . create ( mainWin ! ) ) ;
136+ ipcMain . on ( "open-login-web" , ( ) => {
137+ const mainWin = mainWindow . getWin ( ) ;
138+ if ( ! mainWin ) return ;
139+ loginWindow . create ( mainWin ) ;
140+ } ) ;
126141
127142 // 开启设置
128143 ipcMain . on ( "open-setting" , ( _ , type ) => {
144+ const mainWin = mainWindow . getWin ( ) ;
145+ if ( ! mainWin ) return ;
129146 mainWin ?. show ( ) ;
130147 mainWin ?. focus ( ) ;
131148 mainWin ?. webContents . send ( "openSetting" , type ) ;
0 commit comments