Read and write config option disableHardwareAcceleration

This commit is contained in:
James Salter 2022-05-20 13:26:16 +01:00
parent fb8fff7799
commit bf62a92b50

View file

@ -271,6 +271,7 @@ const store = new Store<{
spellCheckerEnabled?: boolean;
autoHideMenuBar?: boolean;
locale?: string | string[];
disableHardwareAcceleration?: boolean;
}>({ name: "electron-config" });
let eventIndex = null;
@ -424,6 +425,12 @@ ipcMain.on('ipcCall', async function(ev, payload) {
global.mainWindow.autoHideMenuBar = Boolean(args[0]);
global.mainWindow.setMenuBarVisibility(!args[0]);
break;
case 'getDisableHardwareAcceleration':
ret = store.get('disableHardwareAcceleration') === true;
break;
case 'setDisableHardwareAcceleration':
store.set('disableHardwareAcceleration', args[0]);
break;
case 'getAppVersion':
ret = app.getVersion();
break;
@ -843,6 +850,11 @@ app.enableSandbox();
// We disable media controls here. We do this because calls use audio and video elements and they sometimes capture the media keys. See https://github.com/vector-im/element-web/issues/15704
app.commandLine.appendSwitch('disable-features', 'HardwareMediaKeyHandling,MediaSessionService');
// Disable hardware acceleration if the setting has been set.
if (store.get('disableHardwareAcceleration') === true) {
app.disableHardwareAcceleration();
}
app.on('ready', async () => {
try {
await setupGlobals();