diff --git a/src/application-delegate.coffee b/src/application-delegate.coffee index 74c498e78..5249eac96 100644 --- a/src/application-delegate.coffee +++ b/src/application-delegate.coffee @@ -1,5 +1,5 @@ _ = require 'underscore-plus' -{screen, ipcRenderer, remote, shell, webFrame} = require 'electron' +{screen, ipcRenderer, remote, shell, systemPreferences, webFrame} = require 'electron' ipcHelpers = require './ipc-helpers' {Disposable} = require 'event-kit' {getWindowLoadSettings, setWindowLoadSettings} = require './window-load-settings-helpers' @@ -57,12 +57,18 @@ class ApplicationDelegate reloadWindow: -> ipcRenderer.send("call-window-method", "reload") + minimizeWindow: -> + ipcRenderer.send("call-window-method", "minimize") + isWindowMaximized: -> remote.getCurrentWindow().isMaximized() maximizeWindow: -> ipcRenderer.send("call-window-method", "maximize") + unmaximizeWindow: -> + ipcRenderer.send("call-window-method", "unmaximize") + isWindowFullScreen: -> remote.getCurrentWindow().isFullScreen() @@ -130,6 +136,9 @@ class ApplicationDelegate getPrimaryDisplayWorkAreaSize: -> remote.screen.getPrimaryDisplay().workAreaSize + getAppleActionOnDoubleClick: -> + remote.systemPreferences.getUserDefault("AppleActionOnDoubleClick", "string") + confirm: ({message, detailedMessage, buttons}) -> buttons ?= {} if _.isArray(buttons) diff --git a/src/title-bar.coffee b/src/title-bar.coffee index e2da3ed62..ec4bafe15 100644 --- a/src/title-bar.coffee +++ b/src/title-bar.coffee @@ -8,12 +8,24 @@ class TitleBar @titleElement.classList.add('title') @element.appendChild(@titleElement) + @element.addEventListener 'dblclick', @dblclickHandler + @workspace.onDidChangeActivePaneItem => @updateTitle() @themes.onDidChangeActiveThemes => @updateWindowSheetOffset() @updateTitle() @updateWindowSheetOffset() + dblclickHandler: => + switch @applicationDelegate.getAppleActionOnDoubleClick() + when 'Minimize' + @applicationDelegate.minimizeWindow() + when 'Maximize' + if @applicationDelegate.isWindowMaximized() + @applicationDelegate.unmaximizeWindow() + else + @applicationDelegate.maximizeWindow() + updateTitle: -> @titleElement.textContent = document.title