@@ -6,26 +6,41 @@ const fs = require('fs');
66const registerAppMenu = require ( './menu' ) ;
77const registerAnalysis = require ( './analysis' ) ;
88const i18n = require ( './i18n' ) ;
9+ const store = require ( './store' ) ;
910const { loadMainResource } = require ( './utils' ) ;
1011
1112let mainWindow = null ;
1213
1314let baseUrl = null ;
1415let _forceQuitCode = false ;
1516
17+ /**
18+ * Initial window options
19+ */
20+
1621function createWindow ( ) {
17- mainWindow = new BrowserWindow ( {
22+ const { width, height, x, y } = store . get ( 'windowBounds' , { width : 1440 , height : 800 } ) ;
23+
24+ const options = {
25+ x,
26+ y,
27+ height,
28+ width,
1829 minWidth : 1080 ,
1930 minHeight : 720 ,
2031 show : false ,
32+ frame : false , // 无边框
33+ titleBarStyle : 'hidden' ,
2134 webPreferences : {
2235 webSecurity : false ,
36+ spellcheck : false , // 禁用拼写检查器
2337 nodeIntegration : true ,
2438 contextIsolation : true ,
2539 preload : path . join ( __dirname , 'preload.js' ) ,
2640 } ,
27- } ) ;
28- mainWindow . maximize ( ) ;
41+ } ;
42+
43+ mainWindow = new BrowserWindow ( options ) ;
2944 mainWindow . show ( ) ;
3045
3146 // 加载应用-----
@@ -34,18 +49,21 @@ function createWindow() {
3449 // 关闭window时触发下列事件.
3550 mainWindow . on ( 'closed' , function ( event ) {
3651 event . preventDefault ( ) ;
37- mainWindow = null ;
52+ app . hide ( ) ;
3853 } ) ;
3954
40- // 监听打开新窗口事件 用默认浏览器打开
41- // mainWindow.webContents.on('new-window', function (event, url) {
42- // event.preventDefault();
43- // shell.openExternal(url);
44- // });
4555 mainWindow . webContents . setWindowOpenHandler ( ( { url } ) => {
4656 shell . openExternal ( url ) ;
4757 return { action : 'deny' } ;
4858 } ) ;
59+
60+ mainWindow . on ( 'resize' , ( ) => {
61+ store . set ( 'windowBounds' , mainWindow . getBounds ( ) ) ;
62+ } ) ;
63+
64+ mainWindow . on ( 'move' , ( ) => {
65+ store . set ( 'windowBounds' , mainWindow . getBounds ( ) ) ;
66+ } ) ;
4967}
5068
5169// const menu = Menu.buildFromTemplate(menuBar);
@@ -58,21 +76,20 @@ app.on('ready', () => {
5876 registerAppMenu ( mainWindow ) ;
5977 registerAnalysis ( ) ;
6078
61- app . on ( 'activate' , function ( ) {
62- if ( mainWindow === null ) {
63- createWindow ( ) ;
64- }
79+ app . on ( 'activate' , ( ) => {
80+ app . show ( ) ;
6581 } ) ;
6682} ) ;
6783
68- app . on ( 'window-all-closed' , ( ) => {
84+ app . on ( 'window-all-closed' , ( event ) => {
85+ event . preventDefault ( ) ;
6986 if ( process . platform !== 'darwin' ) {
7087 app . quit ( ) ;
7188 }
7289} ) ;
7390
7491app . on ( 'before-quit' , ( ) => {
75- if ( baseUrl ) {
92+ if ( baseUrl ) {
7693 try {
7794 const request = net . request ( {
7895 headers : {
@@ -98,16 +115,23 @@ ipcMain.on('quit-app', () => {
98115 app . quit ( ) ;
99116} ) ;
100117
118+ // 放大或还原窗口
119+ ipcMain . on ( 'set-maximize' , ( ) => {
120+ if ( mainWindow . isMaximized ( ) ) {
121+ mainWindow . unmaximize ( ) ;
122+ } else {
123+ mainWindow . maximize ( ) ;
124+ }
125+ } ) ;
126+
101127ipcMain . on ( 'register-app-menu' , ( event , orgs ) => {
102128 registerAppMenu ( mainWindow , orgs ) ;
103129} ) ;
104130
105- ipcMain . on ( 'set-base-url' , ( event , _baseUrl ) => {
131+ ipcMain . on ( 'set-base-url' , ( event , _baseUrl ) => {
106132 baseUrl = _baseUrl ;
107- } )
133+ } ) ;
108134
109- ipcMain . on ( 'set-force-quit-code' , ( event , _forceQuitCode ) => {
135+ ipcMain . on ( 'set-force-quit-code' , ( event , _forceQuitCode ) => {
110136 forceQuitCode = _forceQuitCode ;
111- } )
112-
113-
137+ } ) ;
0 commit comments