From be69b8f5024827fe774098493595414606eebe5f Mon Sep 17 00:00:00 2001 From: Yuya Ochiai Date: Sat, 21 May 2016 03:06:38 +0900 Subject: [PATCH] Add shortcuts to control zoom level TODO: Keep zoom level when reloading --- src/browser/index.jsx | 18 ++++++++++++------ src/main/menus/app.js | 25 +++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/browser/index.jsx b/src/browser/index.jsx index 0f459d91..dc01d48e 100644 --- a/src/browser/index.jsx +++ b/src/browser/index.jsx @@ -15,9 +15,7 @@ const ListGroupItem = ReactBootstrap.ListGroupItem; const LoginModal = require('./components/loginModal.jsx'); -const electron = require('electron'); -const remote = electron.remote; -const ipcRenderer = electron.ipcRenderer; +const {remote, ipcRenderer, webFrame} = require('electron'); const osLocale = require('os-locale'); const fs = require('fs'); @@ -463,7 +461,7 @@ var showUnreadBadgeWindows = function(unreadCount, mentionCount) { const sendBadge = function(dataURL, description) { // window.setOverlayIcon() does't work with NativeImage across remote boundaries. // https://github.com/atom/electron/issues/4011 - electron.ipcRenderer.send('update-unread', { + ipcRenderer.send('update-unread', { overlayDataURL: dataURL, description: description, unreadCount: unreadCount, @@ -491,7 +489,7 @@ var showUnreadBadgeOSX = function(unreadCount, mentionCount) { remote.app.dock.setBadge(''); } - electron.ipcRenderer.send('update-unread', { + ipcRenderer.send('update-unread', { unreadCount: unreadCount, mentionCount: mentionCount }); @@ -506,7 +504,7 @@ var showUnreadBadgeLinux = function(unreadCount, mentionCount) { remote.app.dock.setBadge(''); }*/ - electron.ipcRenderer.send('update-unread', { + ipcRenderer.send('update-unread', { unreadCount: unreadCount, mentionCount: mentionCount }); @@ -532,3 +530,11 @@ ReactDOM.render( , document.getElementById('content') ); + +ipcRenderer.on('zoom-in', (event, increment) => { + webFrame.setZoomLevel(webFrame.getZoomLevel() + increment); +}); + +ipcRenderer.on('zoom-reset', (event) => { + webFrame.setZoomLevel(0); +}); diff --git a/src/main/menus/app.js b/src/main/menus/app.js index c2a30c3f..a0132984 100644 --- a/src/main/menus/app.js +++ b/src/main/menus/app.js @@ -4,7 +4,10 @@ const electron = require('electron'); const Menu = electron.Menu; var createTemplate = function(mainWindow, config) { - console.log(config); + const separatorItem = { + type: 'separator' + }; + var app_name = electron.app.getName(); var first_menu_name = (process.platform === 'darwin') ? app_name : 'File'; var template = []; @@ -134,7 +137,25 @@ var createTemplate = function(mainWindow, config) { focusedWindow.toggleDevTools(); } } - }, ] + }, separatorItem, { + label: 'Actual size', + accelerator: 'CmdOrCtrl+0', + click: () => { + mainWindow.webContents.send('zoom-reset'); + } + }, { + label: 'Zoom In', + accelerator: 'CmdOrCtrl+Plus', + click: () => { + mainWindow.webContents.send('zoom-in', 1); + } + }, { + label: 'Zoom Out', + accelerator: 'CmdOrCtrl+-', + click: () => { + mainWindow.webContents.send('zoom-in', -1); + } + }] }); const window_menu = {