[MM-34890][MM-34897] Fix some fullscreen issues (#1546)
* [MM-34890][MM-34897] Fix some fullscreen issues * Using saveWindowState instead
This commit is contained in:
parent
1cbe799bc8
commit
dcec274d30
|
@ -45,6 +45,7 @@ export const WINDOW_CLOSE = 'window_close';
|
|||
export const WINDOW_MINIMIZE = 'window_minimize';
|
||||
export const WINDOW_MAXIMIZE = 'window_maximize';
|
||||
export const WINDOW_RESTORE = 'window_restore';
|
||||
export const GET_FULL_SCREEN_STATUS = 'get-full-screen-status';
|
||||
|
||||
export const UPDATE_TARGET_URL = 'update_target_url';
|
||||
|
||||
|
|
|
@ -6,10 +6,10 @@ import fs from 'fs';
|
|||
import path from 'path';
|
||||
import os from 'os';
|
||||
|
||||
import {app, BrowserWindow} from 'electron';
|
||||
import {app, BrowserWindow, ipcMain} from 'electron';
|
||||
import log from 'electron-log';
|
||||
|
||||
import {SELECT_NEXT_TAB, SELECT_PREVIOUS_TAB} from 'common/communication';
|
||||
import {SELECT_NEXT_TAB, SELECT_PREVIOUS_TAB, GET_FULL_SCREEN_STATUS} from 'common/communication';
|
||||
|
||||
import * as Validator from '../Validator';
|
||||
import ContextMenu from '../contextMenu';
|
||||
|
@ -18,6 +18,7 @@ import {getLocalPreload, getLocalURLString} from '../utils';
|
|||
function saveWindowState(file, window) {
|
||||
const windowState = window.getBounds();
|
||||
windowState.maximized = window.isMaximized();
|
||||
windowState.fullscreen = window.isFullScreen();
|
||||
try {
|
||||
fs.writeFileSync(file, JSON.stringify(windowState));
|
||||
} catch (e) {
|
||||
|
@ -66,7 +67,7 @@ function createMainWindow(config, options) {
|
|||
minWidth: minimumWindowWidth,
|
||||
minHeight: minimumWindowHeight,
|
||||
frame: !isFramelessWindow(),
|
||||
fullscreen: false,
|
||||
fullscreen: windowOptions.fullscreen,
|
||||
titleBarStyle: 'hidden',
|
||||
trafficLightPosition: {x: 12, y: 24},
|
||||
backgroundColor: '#fff', // prevents blurry text: https://electronjs.org/docs/faq#the-font-looks-blurry-what-is-this-and-what-can-i-do
|
||||
|
@ -83,6 +84,8 @@ function createMainWindow(config, options) {
|
|||
const mainWindow = new BrowserWindow(windowOptions);
|
||||
mainWindow.setMenuBarVisibility(false);
|
||||
|
||||
ipcMain.handle(GET_FULL_SCREEN_STATUS, () => mainWindow.isFullScreen());
|
||||
|
||||
const localURL = getLocalURLString('index.html');
|
||||
mainWindow.loadURL(localURL).catch(
|
||||
(reason) => {
|
||||
|
|
|
@ -14,6 +14,7 @@ export function createSettingsWindow(mainWindow, config, withDevTools) {
|
|||
...config.data,
|
||||
parent: mainWindow,
|
||||
title: 'Desktop App Settings',
|
||||
fullscreen: false,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
|
|
|
@ -32,6 +32,7 @@ import {
|
|||
SELECT_PREVIOUS_TAB,
|
||||
ADD_SERVER,
|
||||
FOCUS_THREE_DOT_MENU,
|
||||
GET_FULL_SCREEN_STATUS,
|
||||
} from 'common/communication';
|
||||
|
||||
import restoreButton from '../../assets/titlebar/chrome-restore.svg';
|
||||
|
@ -150,6 +151,8 @@ export default class MainPage extends React.PureComponent {
|
|||
window.ipcRenderer.on('enter-full-screen', () => this.handleFullScreenState(true));
|
||||
window.ipcRenderer.on('leave-full-screen', () => this.handleFullScreenState(false));
|
||||
|
||||
window.ipcRenderer.invoke(GET_FULL_SCREEN_STATUS).then((fullScreenStatus) => this.handleFullScreenState(fullScreenStatus));
|
||||
|
||||
window.ipcRenderer.on(ADD_SERVER, () => {
|
||||
this.addServer();
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue