浏览代码

LibWeb: Set CSS custom properties from the element inline style

Karol Kosek 3 年之前
父节点
当前提交
0934573deb
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      Userland/Libraries/LibWeb/CSS/StyleComputer.cpp

+ 7 - 0
Userland/Libraries/LibWeb/CSS/StyleComputer.cpp

@@ -582,6 +582,8 @@ static void cascade_custom_properties(DOM::Element& element, Vector<MatchingRule
     size_t needed_capacity = 0;
     for (auto const& matching_rule : matching_rules)
         needed_capacity += verify_cast<PropertyOwningCSSStyleDeclaration>(matching_rule.rule->declaration()).custom_properties().size();
+    if (auto const* inline_style = verify_cast<PropertyOwningCSSStyleDeclaration>(element.inline_style()))
+        needed_capacity += inline_style->custom_properties().size();
 
     HashMap<FlyString, StyleProperty> custom_properties;
     custom_properties.ensure_capacity(needed_capacity);
@@ -591,6 +593,11 @@ static void cascade_custom_properties(DOM::Element& element, Vector<MatchingRule
             custom_properties.set(it.key, it.value);
     }
 
+    if (auto const* inline_style = verify_cast<PropertyOwningCSSStyleDeclaration>(element.inline_style())) {
+        for (auto const& it : inline_style->custom_properties())
+            custom_properties.set(it.key, it.value);
+    }
+
     element.set_custom_properties(move(custom_properties));
 }