17
17
"use strict" ;
18
18
19
19
const { app, ipcMain, dialog, Menu, BrowserWindow } = require ( 'electron' ) ;
20
- const menu = Menu . buildFromTemplate ( [
20
+ const isDarwin = process . platform === 'darwin' ;
21
+ const menuTemplate = [
21
22
{
22
23
label : 'File' ,
23
24
submenu : [
24
25
{ mact : 'odlfold' , label : 'Open output folder' , click : menuOnClick } ,
25
26
{ mact : 'ologsfold' , label : 'Open logs folder' , click : menuOnClick } ,
26
- { mact : 'aexit' , label : 'Quit' , click : menuOnClick } ,
27
- ]
27
+ { mact : 'aexit' , label : 'Quit' , click : menuOnClick , visible : ! isDarwin }
28
+ ] ,
29
+ role : 'appMenu'
28
30
} ,
29
31
{
30
- label : 'Sharedown ' ,
32
+ label : 'Help ' ,
31
33
submenu : [
32
34
{ mact : 'owiki' , label : 'Open Wiki (external)' , click : menuOnClick } ,
33
- { mact : 'osrc' , label : 'Open repository (external)' , click : menuOnClick } ,
34
- ]
35
+ { mact : 'osrc' , label : 'Open repository (external)' , click : menuOnClick }
36
+ ] ,
37
+ role : 'help'
35
38
} ,
36
39
{
37
- mact : 'about' , label : 'About' , click : menuOnClick
40
+ label : 'About' ,
41
+ submenu : [
42
+ { mact : 'about' , label : 'About Sharedown' , click : menuOnClick }
43
+ ] ,
44
+ role : 'about'
38
45
}
39
- ] ) ;
46
+ ] ;
40
47
const path = require ( 'path' ) ;
41
48
let mainW = null ;
42
49
43
- Menu . setApplicationMenu ( menu ) ;
50
+ if ( isDarwin ) // about must be first on macOS
51
+ menuTemplate . unshift ( menuTemplate . pop ( ) ) ;
52
+
53
+ Menu . setApplicationMenu ( Menu . buildFromTemplate ( menuTemplate ) ) ;
44
54
45
55
function createWindow ( ) {
46
56
const win = new BrowserWindow ( {
@@ -72,7 +82,7 @@ app.whenReady().then(() => {
72
82
} ) ;
73
83
74
84
app . on ( 'window-all-closed' , ( ) => {
75
- if ( process . platform !== 'darwin' )
85
+ if ( ! isDarwin )
76
86
app . quit ( ) ;
77
87
} ) ;
78
88
@@ -102,7 +112,7 @@ ipcMain.on('sharedown-async', (e, args) => {
102
112
case "showabout" : {
103
113
const win = new BrowserWindow ( {
104
114
width : 350 ,
105
- height : 230 ,
115
+ height : 250 ,
106
116
webPreferences : {
107
117
devTools : false ,
108
118
}
@@ -113,9 +123,6 @@ ipcMain.on('sharedown-async', (e, args) => {
113
123
win . setResizable ( false ) ;
114
124
win . setSkipTaskbar ( true ) ;
115
125
win . setParentWindow ( mainW ) ;
116
- mainW . setEnabled ( false ) ;
117
-
118
- win . once ( 'closed' , ( ) => mainW . setEnabled ( true ) ) ;
119
126
}
120
127
break ;
121
128
default :
0 commit comments