From 201afb50c786d655f9a31c4d794e6b4e705b5b9c Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 13 Mar 2022 00:00:30 +0100 Subject: [PATCH] LibWeb: Make Element::recompute_style() really compare properties It's not enough to compare StyleProperties pointers to see if something changed, we have to do a deep compare. --- Userland/Libraries/LibWeb/DOM/Element.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index cd8e49d433..95c49623f8 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -271,13 +271,12 @@ void Element::recompute_style() { set_needs_style_update(false); VERIFY(parent()); - auto old_specified_css_values = m_specified_css_values; auto new_specified_css_values = document().style_computer().compute_style(*this); - if (old_specified_css_values == new_specified_css_values) + if (m_specified_css_values && *m_specified_css_values == *new_specified_css_values) return; - m_specified_css_values = new_specified_css_values; + m_specified_css_values = move(new_specified_css_values); document().invalidate_layout(); }