diff --git a/build/package.json b/build/package.json index bd7a32f1d..99a8bf57c 100644 --- a/build/package.json +++ b/build/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "async": "~0.2.9", - "donna": "1.0.6", + "donna": "1.0.7", "formidable": "~1.0.14", "fs-plus": "2.x", "github-releases": "~0.2.0", diff --git a/menus/linux.cson b/menus/linux.cson index 911dbd33e..3134c8af8 100644 --- a/menus/linux.cson +++ b/menus/linux.cson @@ -94,6 +94,7 @@ submenu: [ { label: '&Reload', command: 'window:reload' } { label: 'Toggle &Full Screen', command: 'window:toggle-full-screen' } + { label: 'Toggle Menu Bar', command: 'window:toggle-menu-bar' } { label: 'Developer' submenu: [ diff --git a/menus/win32.cson b/menus/win32.cson index e316dd107..3ce871942 100644 --- a/menus/win32.cson +++ b/menus/win32.cson @@ -93,6 +93,7 @@ submenu: [ { label: '&Reload', command: 'window:reload' } { label: 'Toggle &Full Screen', command: 'window:toggle-full-screen' } + { label: 'Toggle Menu Bar', command: 'window:toggle-menu-bar' } { label: 'Panes' submenu: [ diff --git a/src/atom.coffee b/src/atom.coffee index 15787494f..944e5049d 100644 --- a/src/atom.coffee +++ b/src/atom.coffee @@ -503,7 +503,11 @@ class Atom extends Model @packages.activate() @keymaps.loadUserKeymap() @requireUserInitScript() unless safeMode + @menu.update() + @subscribe @config.onDidChange 'core.autoHideMenuBar', ({newValue}) => + @setAutoHideMenuBar(newValue) + @setAutoHideMenuBar(true) if @config.get('core.autoHideMenuBar') maximize = dimensions?.maximized and process.platform isnt 'darwin' @displayWindow({maximize}) @@ -723,3 +727,7 @@ class Atom extends Model setBodyPlatformClass: -> document.body.classList.add("platform-#{process.platform}") + + setAutoHideMenuBar: (autoHide) -> + ipc.send('call-window-method', 'setAutoHideMenuBar', autoHide) + ipc.send('call-window-method', 'setMenuBarVisibility', !autoHide) diff --git a/src/config-schema.coffee b/src/config-schema.coffee index 87589f68a..97e9e6e58 100644 --- a/src/config-schema.coffee +++ b/src/config-schema.coffee @@ -187,3 +187,9 @@ module.exports = type: 'boolean' default: process.platform isnt 'darwin' description: 'Increase/decrease the editor font size when pressing the Ctrl key and scrolling the mouse up/down.' + +if process.platform in ['win32', 'linux'] + module.exports.core.properties.autoHideMenuBar = + type: 'boolean' + default: false + description: 'Automatically hide the menu bar and toggle it by pressing Alt. This is only supported on Windows & Linux.' diff --git a/src/window-event-handler.coffee b/src/window-event-handler.coffee index 5eb35ddf6..3d416a86b 100644 --- a/src/window-event-handler.coffee +++ b/src/window-event-handler.coffee @@ -61,6 +61,10 @@ class WindowEventHandler @subscribeToCommand $(window), 'window:toggle-dev-tools', -> atom.toggleDevTools() + if process.platform in ['win32', 'linux'] + @subscribeToCommand $(window), 'window:toggle-menu-bar', -> + atom.config.set('core.autoHideMenuBar', !atom.config.get('core.autoHideMenuBar')) + @subscribeToCommand $(document), 'core:focus-next', @focusNext @subscribeToCommand $(document), 'core:focus-previous', @focusPrevious