Add hack to work around mystery settings bug
This commit is contained in:
parent
71f5c8b2b0
commit
a744415221
2 changed files with 9 additions and 4 deletions
|
@ -185,7 +185,10 @@ export default class GeneralUserSettingsTab extends React.Component {
|
||||||
// The settings watcher doesn't fire until the echo comes back from the
|
// The settings watcher doesn't fire until the echo comes back from the
|
||||||
// server, so to make the theme change immediately we need to manually
|
// server, so to make the theme change immediately we need to manually
|
||||||
// do the dispatch now
|
// do the dispatch now
|
||||||
dis.dispatch({action: 'recheck_theme'});
|
// XXX: The local echoed value appears to be unreliable, in particular
|
||||||
|
// when settings custom themes(!) so adding forceTheme to override
|
||||||
|
// the value from settings.
|
||||||
|
dis.dispatch({action: 'recheck_theme', forceTheme: newTheme});
|
||||||
};
|
};
|
||||||
|
|
||||||
_onUseSystemThemeChanged = (checked) => {
|
_onUseSystemThemeChanged = (checked) => {
|
||||||
|
|
|
@ -60,13 +60,15 @@ export class ThemeWatcher {
|
||||||
|
|
||||||
_onAction = (payload) => {
|
_onAction = (payload) => {
|
||||||
if (payload.action === 'recheck_theme') {
|
if (payload.action === 'recheck_theme') {
|
||||||
this.recheck();
|
// XXX forceTheme
|
||||||
|
this.recheck(payload.forceTheme);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
recheck() {
|
// XXX: forceTheme param aded here as local echo appears to be unreliable
|
||||||
|
recheck(forceTheme) {
|
||||||
const oldTheme = this._currentTheme;
|
const oldTheme = this._currentTheme;
|
||||||
this._currentTheme = this.getEffectiveTheme();
|
this._currentTheme = forceTheme === undefined ? this.getEffectiveTheme() : forceTheme;
|
||||||
if (oldTheme !== this._currentTheme) {
|
if (oldTheme !== this._currentTheme) {
|
||||||
setTheme(this._currentTheme);
|
setTheme(this._currentTheme);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue