1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:27:45 +00:00

LibWeb: Invalidate element style after setting Element.style.foo

This makes us recompute style for the element so the change actually
takes effect. :^)
This commit is contained in:
Andreas Kling 2021-03-16 18:55:53 +01:00
parent 6c8185151e
commit cad4cc9a2a
5 changed files with 40 additions and 5 deletions

View file

@ -50,21 +50,36 @@ public:
return adopt(*new CSSStyleDeclaration(move(properties)));
}
~CSSStyleDeclaration();
virtual ~CSSStyleDeclaration();
const Vector<StyleProperty>& properties() const { return m_properties; }
size_t length() const { return m_properties.size(); }
String item(size_t index) const;
protected:
explicit CSSStyleDeclaration(Vector<StyleProperty>&&);
private:
friend class Bindings::CSSStyleDeclarationWrapper;
explicit CSSStyleDeclaration(Vector<StyleProperty>&&);
Vector<StyleProperty> m_properties;
};
class ElementInlineCSSStyleDeclaration final : public CSSStyleDeclaration {
public:
static NonnullRefPtr<ElementInlineCSSStyleDeclaration> create(DOM::Element& element) { return adopt(*new ElementInlineCSSStyleDeclaration(element)); }
virtual ~ElementInlineCSSStyleDeclaration() override;
DOM::Element* element() { return m_element.ptr(); }
const DOM::Element* element() const { return m_element.ptr(); }
private:
explicit ElementInlineCSSStyleDeclaration(DOM::Element&);
WeakPtr<DOM::Element> m_element;
};
}
namespace Web::Bindings {