Add "Enable GPU hardware acceleration" option

This commit is contained in:
Yuya Ochiai
2018-03-20 22:24:07 +09:00
parent 5fc2cacf59
commit b737e63f68
4 changed files with 54 additions and 0 deletions

View File

@@ -136,6 +136,7 @@ const SettingsPage = createReactClass({
showUnreadBadge: this.state.showUnreadBadge,
useSpellChecker: this.state.useSpellChecker,
spellCheckerLocale: this.state.spellCheckerLocale,
enableHardwareAcceleration: this.state.enableHardwareAcceleration,
};
settings.writeFile(this.props.configFile, config, (err) => {
@@ -259,6 +260,13 @@ const SettingsPage = createReactClass({
setImmediate(this.startSaveConfig, CONFIG_TYPE_APP_OPTIONS);
},
handleChangeEnableHardwareAcceleration() {
this.setState({
enableHardwareAcceleration: !this.refs.enableHardwareAcceleration.props.checked,
});
setImmediate(this.startSaveConfig, CONFIG_TYPE_APP_OPTIONS);
},
updateTeam(index, newData) {
var teams = this.state.teams;
teams[index] = newData;
@@ -549,6 +557,23 @@ const SettingsPage = createReactClass({
</Checkbox>);
}
options.push(
<Checkbox
key='inputEnableHardwareAcceleration'
id='inputEnableHardwareAcceleration'
ref='enableHardwareAcceleration'
checked={this.state.enableHardwareAcceleration}
onChange={this.handleChangeEnableHardwareAcceleration}
>
{'Use GPU hardware acceleration'}
<HelpBlock>
{'Disable this setting if you see a blank page after logging in to Mattermost.'}
{' If enabled, the Mattermost UI is rendered more efficiently but can cause stability issues for some systems.'}
{' Setting takes affect after restarting the app.'}
</HelpBlock>
</Checkbox>
);
var optionsRow = (options.length > 0) ? (
<Row>
<Col md={12}>

View File

@@ -15,6 +15,7 @@ const defaultPreferences = {
},
showUnreadBadge: true,
useSpellChecker: true,
enableHardwareAcceleration: true,
};
module.exports = defaultPreferences;

View File

@@ -88,6 +88,10 @@ try {
settings.writeFileSync(configFile, config);
}
}
if (config.enableHardwareAcceleration === false) {
app.disableHardwareAcceleration();
}
ipcMain.on('update-config', () => {
const configFile = app.getPath('userData') + '/config.json';
config = settings.readFileSync(configFile);