diff --git a/res/css/structures/_RightPanel.scss b/res/css/structures/_RightPanel.scss
index b4dff612ed..554aabfcd1 100644
--- a/res/css/structures/_RightPanel.scss
+++ b/res/css/structures/_RightPanel.scss
@@ -55,6 +55,10 @@ limitations under the License.
padding-bottom: 3px;
}
+.mx_RightPanel_headerButton_badgeHighlight .mx_RightPanel_headerButton_badge {
+ color: $warning-color;
+}
+
.mx_RightPanel_headerButton_highlight {
width: 25px;
height: 5px;
diff --git a/src/Tinter.js b/src/Tinter.js
index d24a4c3e74..1b1ebbcccd 100644
--- a/src/Tinter.js
+++ b/src/Tinter.js
@@ -390,7 +390,7 @@ class Tinter {
// XXX: we could just move this all into TintableSvg, but as it's so similar
// to the CSS fixup stuff in Tinter (just that the fixups are stored in TintableSvg)
// keeping it here for now.
- calcSvgFixups(svgs) {
+ calcSvgFixups(svgs, forceColors) {
// go through manually fixing up SVG colours.
// we could do this by stylesheets, but keeping the stylesheets
// updated would be a PITA, so just brute-force search for the
@@ -418,13 +418,14 @@ class Tinter {
const tag = tags[j];
for (let k = 0; k < this.svgAttrs.length; k++) {
const attr = this.svgAttrs[k];
- for (let l = 0; l < this.keyHex.length; l++) {
+ for (let m = 0; m < this.keyHex.length; m++) { // dev note: don't use L please.
if (tag.getAttribute(attr) &&
- tag.getAttribute(attr).toUpperCase() === this.keyHex[l]) {
+ tag.getAttribute(attr).toUpperCase() === this.keyHex[m]) {
fixups.push({
node: tag,
attr: attr,
- index: l,
+ index: m,
+ forceColors: forceColors,
});
}
}
@@ -440,7 +441,9 @@ class Tinter {
if (DEBUG) console.log("applySvgFixups start for " + fixups);
for (let i = 0; i < fixups.length; i++) {
const svgFixup = fixups[i];
- svgFixup.node.setAttribute(svgFixup.attr, this.colors[svgFixup.index]);
+ const forcedColor = svgFixup.forceColors ? svgFixup.forceColors[svgFixup.index] : null;
+ if (forcedColor) console.log(forcedColor);
+ svgFixup.node.setAttribute(svgFixup.attr, forcedColor ? forcedColor : this.colors[svgFixup.index]);
}
if (DEBUG) console.log("applySvgFixups end");
}
diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js
index 9017447a34..c21c5f459f 100644
--- a/src/components/structures/RightPanel.js
+++ b/src/components/structures/RightPanel.js
@@ -30,6 +30,7 @@ import { showGroupInviteDialog, showGroupAddRoomDialog } from '../../GroupAddres
import GroupStore from '../../stores/GroupStore';
import { formatCount } from '../../utils/FormattingUtils';
+import MatrixClientPeg from "../../MatrixClientPeg";
class HeaderButton extends React.Component {
constructor() {
@@ -49,17 +50,26 @@ class HeaderButton extends React.Component {
const TintableSvg = sdk.getComponent("elements.TintableSvg");
const AccessibleButton = sdk.getComponent("elements.AccessibleButton");
+ // XXX: We really shouldn't be hardcoding colors here, but the way TintableSvg
+ // works kinda prevents us from using normal CSS tactics. We use $warning-color
+ // here.
+ // Note: This array gets passed along to the Tinter's forceColors eventually.
+ const tintableColors = this.props.badgeHighlight ? ["#ff0064"] : null;
+
+ const classNames = ["mx_RightPanel_headerButton"];
+ if (this.props.badgeHighlight) classNames.push("mx_RightPanel_headerButton_badgeHighlight");
+
return