Disable full screen mode on Linux (#3151)

This commit is contained in:
Devin Binnie
2024-09-24 09:47:38 -04:00
committed by GitHub
parent 92a0eff603
commit ddecc42233
3 changed files with 45 additions and 33 deletions

View File

@@ -231,7 +231,7 @@ export function createTemplate(config: Config, updateManager: UpdateManager) {
]);
}
const viewSubMenu = [{
const viewSubMenu: Electron.MenuItemConstructorOptions[] = [{
label: localizeMessage('main.menus.app.view.find', 'Find..'),
accelerator: 'CmdOrCtrl+F',
click() {
@@ -250,11 +250,17 @@ export function createTemplate(config: Config, updateManager: UpdateManager) {
session.defaultSession.clearCache();
ViewManager.reload();
},
}, {
role: 'togglefullscreen',
label: localizeMessage('main.menus.app.view.fullscreen', 'Toggle Full Screen'),
accelerator: isMac ? 'Ctrl+Cmd+F' : 'F11',
}, separatorItem, {
}];
if (process.platform !== 'linux') {
viewSubMenu.push({
role: 'togglefullscreen',
label: localizeMessage('main.menus.app.view.fullscreen', 'Toggle Full Screen'),
accelerator: isMac ? 'Ctrl+Cmd+F' : 'F11',
});
}
viewSubMenu.push(separatorItem, {
label: localizeMessage('main.menus.app.view.actualSize', 'Actual Size'),
role: 'resetZoom',
accelerator: 'CmdOrCtrl+0',
@@ -284,7 +290,7 @@ export function createTemplate(config: Config, updateManager: UpdateManager) {
}, separatorItem, {
label: localizeMessage('main.menus.app.view.devToolsSubMenu', 'Developer Tools'),
submenu: devToolsSubMenu,
}];
});
if (process.platform !== 'darwin' && process.platform !== 'win32') {
viewSubMenu.push(separatorItem);

View File

@@ -74,7 +74,7 @@ export class MainWindow extends EventEmitter {
const windowOptions: BrowserWindowConstructorOptions = Object.assign({}, this.savedWindowState, {
title: app.name,
fullscreenable: true,
fullscreenable: process.platform !== 'linux',
show: false, // don't start the window until it is ready and only if it isn't hidden
paintWhenInitiallyHidden: true, // we want it to start painting to get info from the webapp
minWidth: MINIMUM_WINDOW_WIDTH,
@@ -231,6 +231,10 @@ export class MainWindow extends EventEmitter {
};
private shouldStartFullScreen = () => {
if (process.platform === 'linux') {
return false;
}
if (global?.args?.fullscreen !== undefined) {
return global.args.fullscreen;
}

View File

@@ -982,32 +982,34 @@ class SettingsPage extends React.PureComponent<Props, State> {
</FormCheck>,
);
options.push(
<FormCheck
key='inputStartInFullScreen'
>
<FormCheck.Input
type='checkbox'
id='inputStartInFullScreen'
ref={this.startInFullscreenRef}
checked={this.state.startInFullscreen}
onChange={this.handleChangeStartInFullscreen}
/>
<FormattedMessage
id='renderer.components.settingsPage.fullscreen'
defaultMessage='Open app in fullscreen'
/>
<FormText>
<FormattedMessage
id='renderer.components.settingsPage.fullscreen.description'
defaultMessage='If enabled, the {appName} application will always open in full screen'
values={{
appName: this.state.appName,
}}
if (process.platform !== 'linux') {
options.push(
<FormCheck
key='inputStartInFullScreen'
>
<FormCheck.Input
type='checkbox'
id='inputStartInFullScreen'
ref={this.startInFullscreenRef}
checked={this.state.startInFullscreen}
onChange={this.handleChangeStartInFullscreen}
/>
</FormText>
</FormCheck>,
);
<FormattedMessage
id='renderer.components.settingsPage.fullscreen'
defaultMessage='Open app in fullscreen'
/>
<FormText>
<FormattedMessage
id='renderer.components.settingsPage.fullscreen.description'
defaultMessage='If enabled, the {appName} application will always open in full screen'
values={{
appName: this.state.appName,
}}
/>
</FormText>
</FormCheck>,
);
}
options.push(
<div