Merge pull request #12327 from Zirro/custom-title-bar-double-click

Handle double-click on custom title bar
This commit is contained in:
Nathan Sobo
2016-08-06 08:29:53 -06:00
committed by GitHub
2 changed files with 23 additions and 1 deletions

View File

@@ -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
getUserDefault: (key, type) ->
remote.systemPreferences.getUserDefault(key, type)
confirm: ({message, detailedMessage, buttons}) ->
buttons ?= {}
if _.isArray(buttons)

View File

@@ -8,12 +8,25 @@ class TitleBar
@titleElement.classList.add('title')
@element.appendChild(@titleElement)
@element.addEventListener 'dblclick', @dblclickHandler
@workspace.onDidChangeActivePaneItem => @updateTitle()
@themes.onDidChangeActiveThemes => @updateWindowSheetOffset()
@updateTitle()
@updateWindowSheetOffset()
dblclickHandler: =>
# User preference deciding which action to take on a title bar double-click
switch @applicationDelegate.getUserDefault('AppleActionOnDoubleClick', 'string')
when 'Minimize'
@applicationDelegate.minimizeWindow()
when 'Maximize'
if @applicationDelegate.isWindowMaximized()
@applicationDelegate.unmaximizeWindow()
else
@applicationDelegate.maximizeWindow()
updateTitle: ->
@titleElement.textContent = document.title