aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/styleengine.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/styleengine.cc b/src/styleengine.cc
index a482f088..f5994b7d 100644
--- a/src/styleengine.cc
+++ b/src/styleengine.cc
@@ -165,13 +165,17 @@ void StyleEngine::setStyle (const char *styleAttr) {
*/
void StyleEngine::inheritNonCssHints () {
Node *pn = stack->getRef (stack->size () - 2);
- Node *n = stack->getRef (stack->size () - 1);
if (pn->nonCssProperties) {
- if (n->nonCssProperties)
- pn->nonCssProperties->apply (n->nonCssProperties);
- else
- n->nonCssProperties = new CssPropertyList(*pn->nonCssProperties, true);
+ Node *n = stack->getRef (stack->size () - 1);
+ CssPropertyList *origNonCssProperties = n->nonCssProperties;
+
+ n->nonCssProperties = new CssPropertyList(*pn->nonCssProperties, true);
+
+ if (origNonCssProperties) // original nonCssProperties have precedence
+ origNonCssProperties->apply (n->nonCssProperties);
+
+ delete origNonCssProperties;
}
}