diff --git a/js/models.js b/js/models.js index 9d53c61..a0c066b 100644 --- a/js/models.js +++ b/js/models.js @@ -88,16 +88,7 @@ models.service('models', ['$rootScope', function($rootScope) { if (textEl.attrs.name !== null) { textEl.classes.push('coa-' + textEl.attrs.name); } - var allReset = true; for (var attr in textEl.attrs.override) { - if (textEl.attrs.override[attr]) { - allReset = false; - break; - } - } - if (allReset) { - textEl.classes.push('a-reset'); - } else for (var attr in textEl.attrs.override) { val = textEl.attrs.override[attr]; if (val) { textEl.classes.push('a-' + attr); diff --git a/js/weechat.js b/js/weechat.js index 698113a..d4f122a 100644 --- a/js/weechat.js +++ b/js/weechat.js @@ -461,6 +461,7 @@ var curBgColor = WeeChatProtocol._getDefaultColor(); var curAttrs = WeeChatProtocol._getDefaultAttributes(); var curSpecialToken = null; + var curAttrsOnlyFalseOverrides = true; return parts.map(function(p) { if (p.length == 0) { @@ -529,6 +530,24 @@ return null; } + /* As long as attributes are only false overrides, without any option + * name, it's safe to remove them. + */ + if (curAttrsOnlyFalseOverrides && curAttrs.name === null) { + var allReset = true; + for (var attr in curAttrs.override) { + if (curAttrs.override[attr]) { + allReset = false; + break; + } + } + if (allReset) { + curAttrs.override = {}; + } else { + curAttrsOnlyFalseOverrides = false; + } + } + // parsed text element return { fgColor: WeeChatProtocol._cloneColor(curFgColor),