From e35f1ce8680948a48b7e6c4c5f2adce4c0cafc0b Mon Sep 17 00:00:00 2001 From: James Salter Date: Fri, 20 May 2022 13:10:48 +0100 Subject: [PATCH 01/10] Add disable hardware acceleration option --- src/BasePlatform.ts | 12 +++++++++ .../tabs/user/PreferencesUserSettingsTab.tsx | 26 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/BasePlatform.ts b/src/BasePlatform.ts index 95f34597635..0f05535611b 100644 --- a/src/BasePlatform.ts +++ b/src/BasePlatform.ts @@ -291,6 +291,18 @@ export default abstract class BasePlatform { throw new Error("Unimplemented"); } + supportsDisableHardwareAcceleration(): boolean { + return false; + } + + async getDisableHardwareAcceleration(): Promise { + return false; + } + + async setDisableHardwareAcceleration(enabled: boolean): Promise { + throw new Error("Unimplemented"); + } + /** * Get our platform specific EventIndexManager. * diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx index 8b3bdeb7fcf..26fbdce8680 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx @@ -43,6 +43,8 @@ interface IState { alwaysShowMenuBar: boolean; minimizeToTraySupported: boolean; minimizeToTray: boolean; + disableHardwareAccelerationSupported: boolean; + disableHardwareAcceleration: boolean; autocompleteDelay: string; readMarkerInViewThresholdMs: string; readMarkerOutOfViewThresholdMs: string; @@ -117,6 +119,8 @@ export default class PreferencesUserSettingsTab extends React.Component this.setState({ minimizeToTray: checked })); }; + private onDisableHardwareAccelerationChange = (checked: boolean) => { + PlatformPeg.get().setDisableHardwareAcceleration(checked).then( + () => this.setState({ disableHardwareAcceleration: checked })); + }; + private onAutocompleteDelayChange = (e: React.ChangeEvent) => { this.setState({ autocompleteDelay: e.target.value }); SettingsStore.setValue("autocompleteDelay", null, SettingLevel.DEVICE, e.target.value); @@ -246,6 +263,14 @@ export default class PreferencesUserSettingsTab extends React.Component; } + let disableHardwareAccelerationOption = null; + if (this.state.disableHardwareAccelerationSupported) { + disableHardwareAccelerationOption = ; + } + return (
{ _t("Preferences") }
@@ -303,6 +328,7 @@ export default class PreferencesUserSettingsTab extends React.Component{ _t("General") } { this.renderGroup(PreferencesUserSettingsTab.GENERAL_SETTINGS) } { minimizeToTrayOption } + { disableHardwareAccelerationOption } { autoHideMenuOption } { autoLaunchOption } { warnBeforeExitOption } From bd96a9396431e4bdd09a68d7b0847c1d08b95acd Mon Sep 17 00:00:00 2001 From: James Salter Date: Fri, 20 May 2022 13:47:51 +0100 Subject: [PATCH 02/10] i18n --- src/i18n/strings/en_EN.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 9b82b120c32..837f3e6521d 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1500,6 +1500,7 @@ "Warn before quitting": "Warn before quitting", "Always show the window menu bar": "Always show the window menu bar", "Show tray icon and minimise window to it on close": "Show tray icon and minimise window to it on close", + "Disable hardware acceleration (requires restart to take effect)": "Disable hardware acceleration (requires restart to take effect)", "Preferences": "Preferences", "Room list": "Room list", "Keyboard shortcuts": "Keyboard shortcuts", From 1b76a22593e83b0993d6b496fea0912701cc98c9 Mon Sep 17 00:00:00 2001 From: James Salter Date: Fri, 20 May 2022 14:01:17 +0100 Subject: [PATCH 03/10] explicit public --- src/BasePlatform.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/BasePlatform.ts b/src/BasePlatform.ts index 0f05535611b..2f774ba0118 100644 --- a/src/BasePlatform.ts +++ b/src/BasePlatform.ts @@ -291,15 +291,15 @@ export default abstract class BasePlatform { throw new Error("Unimplemented"); } - supportsDisableHardwareAcceleration(): boolean { + public supportsDisableHardwareAcceleration(): boolean { return false; } - async getDisableHardwareAcceleration(): Promise { + public async getDisableHardwareAcceleration(): Promise { return false; } - async setDisableHardwareAcceleration(enabled: boolean): Promise { + public async setDisableHardwareAcceleration(enabled: boolean): Promise { throw new Error("Unimplemented"); } From 2622c929552aed2d42bf9ad2df2a16f5ef5c26d3 Mon Sep 17 00:00:00 2001 From: James Salter Date: Fri, 20 May 2022 14:29:09 +0100 Subject: [PATCH 04/10] invert how we refer to enablement --- src/BasePlatform.ts | 8 ++-- .../tabs/user/PreferencesUserSettingsTab.tsx | 40 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/BasePlatform.ts b/src/BasePlatform.ts index 2f774ba0118..58060836630 100644 --- a/src/BasePlatform.ts +++ b/src/BasePlatform.ts @@ -291,15 +291,15 @@ export default abstract class BasePlatform { throw new Error("Unimplemented"); } - public supportsDisableHardwareAcceleration(): boolean { + public supportsHardwareAcceleration(): boolean { return false; } - public async getDisableHardwareAcceleration(): Promise { - return false; + public async getHardwareAccelerationEnabled(): Promise { + return true; } - public async setDisableHardwareAcceleration(enabled: boolean): Promise { + public async setHardwareAccelerationEnabled(enabled: boolean): Promise { throw new Error("Unimplemented"); } diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx index 26fbdce8680..a939b8c3528 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx @@ -43,8 +43,8 @@ interface IState { alwaysShowMenuBar: boolean; minimizeToTraySupported: boolean; minimizeToTray: boolean; - disableHardwareAccelerationSupported: boolean; - disableHardwareAcceleration: boolean; + hardwareAccelerationSupported: boolean; + hardwareAcceleration: boolean; autocompleteDelay: string; readMarkerInViewThresholdMs: string; readMarkerOutOfViewThresholdMs: string; @@ -119,8 +119,8 @@ export default class PreferencesUserSettingsTab extends React.Component this.setState({ minimizeToTray: checked })); }; - private onDisableHardwareAccelerationChange = (checked: boolean) => { - PlatformPeg.get().setDisableHardwareAcceleration(checked).then( - () => this.setState({ disableHardwareAcceleration: checked })); + private onHardwareAccelerationChange = (checked: boolean) => { + PlatformPeg.get().setHardwareAccelerationEnabled(checked).then( + () => this.setState({ enableHardwareAcceleration: checked })); }; private onAutocompleteDelayChange = (e: React.ChangeEvent) => { @@ -263,12 +263,12 @@ export default class PreferencesUserSettingsTab extends React.Component; } - let disableHardwareAccelerationOption = null; - if (this.state.disableHardwareAccelerationSupported) { - disableHardwareAccelerationOption = ; + let hardwareAccelerationOption = null; + if (this.state.hardwareAccelerationSupported) { + hardwareAccelerationOption = ; } return ( @@ -328,7 +328,7 @@ export default class PreferencesUserSettingsTab extends React.Component{ _t("General") } { this.renderGroup(PreferencesUserSettingsTab.GENERAL_SETTINGS) } { minimizeToTrayOption } - { disableHardwareAccelerationOption } + { hardwareAccelerationOption } { autoHideMenuOption } { autoLaunchOption } { warnBeforeExitOption } From b7d362c5cea8dcc9a0d48cbd42a681fb786b87ea Mon Sep 17 00:00:00 2001 From: James Salter Date: Fri, 20 May 2022 15:01:23 +0100 Subject: [PATCH 05/10] Clarify what we are supporting: toggling hardware accel, not whether it is on --- src/BasePlatform.ts | 2 +- .../views/settings/tabs/user/PreferencesUserSettingsTab.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BasePlatform.ts b/src/BasePlatform.ts index 58060836630..d1f4ba397aa 100644 --- a/src/BasePlatform.ts +++ b/src/BasePlatform.ts @@ -291,7 +291,7 @@ export default abstract class BasePlatform { throw new Error("Unimplemented"); } - public supportsHardwareAcceleration(): boolean { + public supportsTogglingHardwareAcceleration(): boolean { return false; } diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx index a939b8c3528..2d861f2781f 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx @@ -157,7 +157,7 @@ export default class PreferencesUserSettingsTab extends React.Component Date: Fri, 20 May 2022 15:08:39 +0100 Subject: [PATCH 06/10] more naming --- .../tabs/user/PreferencesUserSettingsTab.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx index 2d861f2781f..1a172f3dbb2 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx @@ -43,8 +43,8 @@ interface IState { alwaysShowMenuBar: boolean; minimizeToTraySupported: boolean; minimizeToTray: boolean; - hardwareAccelerationSupported: boolean; - hardwareAcceleration: boolean; + togglingHardwareAccelerationSupported: boolean; + enableHardwareAcceleration: boolean; autocompleteDelay: string; readMarkerInViewThresholdMs: string; readMarkerOutOfViewThresholdMs: string; @@ -119,8 +119,8 @@ export default class PreferencesUserSettingsTab extends React.Component Date: Fri, 20 May 2022 15:12:00 +0100 Subject: [PATCH 07/10] Default to true for consistency (although this isn't read) --- .../views/settings/tabs/user/PreferencesUserSettingsTab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx index 1a172f3dbb2..f19a782c9ae 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx @@ -158,7 +158,7 @@ export default class PreferencesUserSettingsTab extends React.Component Date: Fri, 20 May 2022 15:14:28 +0100 Subject: [PATCH 08/10] i18n --- src/i18n/strings/en_EN.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 837f3e6521d..6e50c490c6c 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1500,7 +1500,7 @@ "Warn before quitting": "Warn before quitting", "Always show the window menu bar": "Always show the window menu bar", "Show tray icon and minimise window to it on close": "Show tray icon and minimise window to it on close", - "Disable hardware acceleration (requires restart to take effect)": "Disable hardware acceleration (requires restart to take effect)", + "Enable hardware acceleration (requires restart to take effect)": "Enable hardware acceleration (requires restart to take effect)", "Preferences": "Preferences", "Room list": "Room list", "Keyboard shortcuts": "Keyboard shortcuts", From e15b0ed4b4158c5d05bb69f4f06c7109ae63f238 Mon Sep 17 00:00:00 2001 From: James Salter Date: Mon, 23 May 2022 10:37:12 +0100 Subject: [PATCH 09/10] update copy --- .../views/settings/tabs/user/PreferencesUserSettingsTab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx index f19a782c9ae..45977e2f900 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx @@ -268,7 +268,7 @@ export default class PreferencesUserSettingsTab extends React.Component; + label={_t('Enable hardware acceleration (restart %(appName)s to take effect)')} />; } return ( From 4fd3d8f4512b42e2e3c3bab3947bd0693f0e36b8 Mon Sep 17 00:00:00 2001 From: James Salter Date: Mon, 23 May 2022 11:03:45 +0100 Subject: [PATCH 10/10] fix reference to appName --- .../views/settings/tabs/user/PreferencesUserSettingsTab.tsx | 6 +++++- src/i18n/strings/en_EN.json | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx index 45977e2f900..64f052b1ace 100644 --- a/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx @@ -29,6 +29,7 @@ import dis from "../../../../../dispatcher/dispatcher"; import { UserTab } from "../../../dialogs/UserTab"; import { OpenToTabPayload } from "../../../../../dispatcher/payloads/OpenToTabPayload"; import { Action } from "../../../../../dispatcher/actions"; +import SdkConfig from "../../../../../SdkConfig"; interface IProps { closeSettingsFn(success: boolean): void; @@ -265,10 +266,13 @@ export default class PreferencesUserSettingsTab extends React.Component; + label={_t('Enable hardware acceleration (restart %(appName)s to take effect)', { + appName, + })} />; } return ( diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 6e50c490c6c..80898b622d7 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1500,7 +1500,7 @@ "Warn before quitting": "Warn before quitting", "Always show the window menu bar": "Always show the window menu bar", "Show tray icon and minimise window to it on close": "Show tray icon and minimise window to it on close", - "Enable hardware acceleration (requires restart to take effect)": "Enable hardware acceleration (requires restart to take effect)", + "Enable hardware acceleration (restart %(appName)s to take effect)": "Enable hardware acceleration (restart %(appName)s to take effect)", "Preferences": "Preferences", "Room list": "Room list", "Keyboard shortcuts": "Keyboard shortcuts",