[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_MINIMIZE = 'window_minimize';
|
||||||
export const WINDOW_MAXIMIZE = 'window_maximize';
|
export const WINDOW_MAXIMIZE = 'window_maximize';
|
||||||
export const WINDOW_RESTORE = 'window_restore';
|
export const WINDOW_RESTORE = 'window_restore';
|
||||||
|
export const GET_FULL_SCREEN_STATUS = 'get-full-screen-status';
|
||||||
|
|
||||||
export const UPDATE_TARGET_URL = 'update_target_url';
|
export const UPDATE_TARGET_URL = 'update_target_url';
|
||||||
|
|
||||||
|
|
|
@ -6,10 +6,10 @@ import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import os from 'os';
|
import os from 'os';
|
||||||
|
|
||||||
import {app, BrowserWindow} from 'electron';
|
import {app, BrowserWindow, ipcMain} from 'electron';
|
||||||
import log from 'electron-log';
|
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 * as Validator from '../Validator';
|
||||||
import ContextMenu from '../contextMenu';
|
import ContextMenu from '../contextMenu';
|
||||||
|
@ -18,6 +18,7 @@ import {getLocalPreload, getLocalURLString} from '../utils';
|
||||||
function saveWindowState(file, window) {
|
function saveWindowState(file, window) {
|
||||||
const windowState = window.getBounds();
|
const windowState = window.getBounds();
|
||||||
windowState.maximized = window.isMaximized();
|
windowState.maximized = window.isMaximized();
|
||||||
|
windowState.fullscreen = window.isFullScreen();
|
||||||
try {
|
try {
|
||||||
fs.writeFileSync(file, JSON.stringify(windowState));
|
fs.writeFileSync(file, JSON.stringify(windowState));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -66,7 +67,7 @@ function createMainWindow(config, options) {
|
||||||
minWidth: minimumWindowWidth,
|
minWidth: minimumWindowWidth,
|
||||||
minHeight: minimumWindowHeight,
|
minHeight: minimumWindowHeight,
|
||||||
frame: !isFramelessWindow(),
|
frame: !isFramelessWindow(),
|
||||||
fullscreen: false,
|
fullscreen: windowOptions.fullscreen,
|
||||||
titleBarStyle: 'hidden',
|
titleBarStyle: 'hidden',
|
||||||
trafficLightPosition: {x: 12, y: 24},
|
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
|
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);
|
const mainWindow = new BrowserWindow(windowOptions);
|
||||||
mainWindow.setMenuBarVisibility(false);
|
mainWindow.setMenuBarVisibility(false);
|
||||||
|
|
||||||
|
ipcMain.handle(GET_FULL_SCREEN_STATUS, () => mainWindow.isFullScreen());
|
||||||
|
|
||||||
const localURL = getLocalURLString('index.html');
|
const localURL = getLocalURLString('index.html');
|
||||||
mainWindow.loadURL(localURL).catch(
|
mainWindow.loadURL(localURL).catch(
|
||||||
(reason) => {
|
(reason) => {
|
||||||
|
|
|
@ -14,6 +14,7 @@ export function createSettingsWindow(mainWindow, config, withDevTools) {
|
||||||
...config.data,
|
...config.data,
|
||||||
parent: mainWindow,
|
parent: mainWindow,
|
||||||
title: 'Desktop App Settings',
|
title: 'Desktop App Settings',
|
||||||
|
fullscreen: false,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
nodeIntegration: false,
|
nodeIntegration: false,
|
||||||
contextIsolation: true,
|
contextIsolation: true,
|
||||||
|
|
|
@ -32,6 +32,7 @@ import {
|
||||||
SELECT_PREVIOUS_TAB,
|
SELECT_PREVIOUS_TAB,
|
||||||
ADD_SERVER,
|
ADD_SERVER,
|
||||||
FOCUS_THREE_DOT_MENU,
|
FOCUS_THREE_DOT_MENU,
|
||||||
|
GET_FULL_SCREEN_STATUS,
|
||||||
} from 'common/communication';
|
} from 'common/communication';
|
||||||
|
|
||||||
import restoreButton from '../../assets/titlebar/chrome-restore.svg';
|
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('enter-full-screen', () => this.handleFullScreenState(true));
|
||||||
window.ipcRenderer.on('leave-full-screen', () => this.handleFullScreenState(false));
|
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, () => {
|
window.ipcRenderer.on(ADD_SERVER, () => {
|
||||||
this.addServer();
|
this.addServer();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue