Fixed reload & zoom in Flipper Desktop application. (#3840)
Summary: After the upgrade to Electron in `92cdb81`, the reload functionality no longer works. I believe this is due to the main menu creation being moved to the main process where the `window` global variable is undefined (whereas previously it was on the render process, where `window` would be defined). Rather than rely on the `window` global, when a reload is requested just reload the given `focusedWindow`. Similarly, zooming was also broken, so fix that by going through `focusedWindow` rather than `webFrame` (since `webFrame` only exists in the render process). Fixes https://github.com/facebook/flipper/issues/3839, https://github.com/facebook/flipper/issues/3820 ## Changelog changelog: Fixed reload & zoom in Flipper Desktop application. Pull Request resolved: https://github.com/facebook/flipper/pull/3840 Test Plan: Built the application locally, verified that reload worked as expected (and would reload the application), verified that zooming (in, out, actual size) worked as expected. Reviewed By: passy Differential Revision: D38784319 Pulled By: mweststrate fbshipit-source-id: c219063a8aaf42425678c2c8824f6fcde1cadd52
This commit is contained in:
committed by
Facebook GitHub Bot
parent
543ea489db
commit
efdc7e58c4
@@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// eslint-disable-next-line no-restricted-imports
|
// eslint-disable-next-line no-restricted-imports
|
||||||
import electron, {MenuItemConstructorOptions, webFrame} from 'electron';
|
import electron, {MenuItemConstructorOptions} from 'electron';
|
||||||
import {ElectronIpcClientMain} from './electronIpcMain';
|
import {ElectronIpcClientMain} from './electronIpcMain';
|
||||||
|
|
||||||
export function setupMenuBar(electronIpcClient: ElectronIpcClientMain) {
|
export function setupMenuBar(electronIpcClient: ElectronIpcClientMain) {
|
||||||
@@ -68,8 +68,10 @@ function getTemplate(
|
|||||||
accelerator: (function () {
|
accelerator: (function () {
|
||||||
return 'CmdOrCtrl+0';
|
return 'CmdOrCtrl+0';
|
||||||
})(),
|
})(),
|
||||||
click: function (_, _focusedWindow: electron.BrowserWindow | undefined) {
|
click: function (_, focusedWindow: electron.BrowserWindow | undefined) {
|
||||||
webFrame.setZoomFactor(1);
|
if (focusedWindow) {
|
||||||
|
focusedWindow.webContents.setZoomLevel(0);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -77,8 +79,11 @@ function getTemplate(
|
|||||||
accelerator: (function () {
|
accelerator: (function () {
|
||||||
return 'CmdOrCtrl+=';
|
return 'CmdOrCtrl+=';
|
||||||
})(),
|
})(),
|
||||||
click: function (_, _focusedWindow: electron.BrowserWindow | undefined) {
|
click: function (_, focusedWindow: electron.BrowserWindow | undefined) {
|
||||||
webFrame.setZoomFactor(webFrame.getZoomFactor() + 0.25);
|
if (focusedWindow) {
|
||||||
|
const webContents = focusedWindow.webContents;
|
||||||
|
webContents.setZoomLevel(webContents.getZoomLevel() + 1);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -86,8 +91,11 @@ function getTemplate(
|
|||||||
accelerator: (function () {
|
accelerator: (function () {
|
||||||
return 'CmdOrCtrl+-';
|
return 'CmdOrCtrl+-';
|
||||||
})(),
|
})(),
|
||||||
click: function (_, _focusedWindow: electron.BrowserWindow | undefined) {
|
click: function (_, focusedWindow: electron.BrowserWindow | undefined) {
|
||||||
webFrame.setZoomFactor(webFrame.getZoomFactor() - 0.25);
|
if (focusedWindow) {
|
||||||
|
const webContents = focusedWindow.webContents;
|
||||||
|
webContents.setZoomLevel(webContents.getZoomLevel() - 1);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user