Matthew Hodgson 2017-11-15 09:56:44 +00:00
parent 546b062d82
commit e91e94fd42
2 changed files with 8 additions and 0 deletions

View File

@ -224,6 +224,7 @@ class Tinter {
} }
setTheme(theme) { setTheme(theme) {
console.trace("setTheme " + theme);
this.theme = theme; this.theme = theme;
// update keyRgb from the current theme CSS itself, if it defines it // update keyRgb from the current theme CSS itself, if it defines it
@ -301,6 +302,8 @@ class Tinter {
if (ss.disabled) continue; if (ss.disabled) continue;
if (!ss.cssRules) continue; if (!ss.cssRules) continue;
if (DEBUG) console.debug("calcCssFixups checking " + ss.cssRules.length + " rules for " + ss.href);
for (let j = 0; j < ss.cssRules.length; j++) { for (let j = 0; j < ss.cssRules.length; j++) {
const rule = ss.cssRules[j]; const rule = ss.cssRules[j];
if (!rule.style) continue; if (!rule.style) continue;

View File

@ -922,6 +922,11 @@ module.exports = React.createClass({
styleElements[theme].disabled = false; styleElements[theme].disabled = false;
const switchTheme = function() { const switchTheme = function() {
// we re-enable our theme here just in case we raced with another
// theme set request as per https://github.com/vector-im/riot-web/issues/5601.
// We could alternatively lock or similar to stop the race, but
// this is probably good enough for now.
styleElements[theme].disabled = false;
Object.values(styleElements).forEach((a) => { Object.values(styleElements).forEach((a) => {
if (a == styleElements[theme]) return; if (a == styleElements[theme]) return;
a.disabled = true; a.disabled = true;