mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
LibWeb: Update layout if we lack a node when getting computed style
As noted, there are two situations where an element will have no layout node here: 1. The element is invisible in a way that it generates no layout node. 2. We haven't built the layout yet. This protects against the second case, which would otherwise incorrectly send us down the path of looking directly at the computed style.
This commit is contained in:
parent
642ad80960
commit
c65d6964ea
Notes:
sideshowbarker
2024-07-17 02:56:25 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/SerenityOS/serenity/commit/c65d6964ea Pull-request: https://github.com/SerenityOS/serenity/pull/21425 Issue: https://github.com/SerenityOS/serenity/issues/21419 Reviewed-by: https://github.com/kalenikaliaksandr ✅
2 changed files with 5 additions and 2 deletions
|
@ -1 +1 @@
|
|||
0 calc(5px - 10px) 0 calc(2px + 3px) => #000000ff 0px calc(5px + (0 - 10px)) 0px calc(2px + 3px)
|
||||
0 calc(5px - 10px) 0 calc(2px + 3px) => #000000ff 0px -5px 0px 5px
|
||||
|
|
|
@ -467,7 +467,10 @@ Optional<StyleProperty> ResolvedCSSStyleDeclaration::property(PropertyID propert
|
|||
if (!m_element->is_connected())
|
||||
return {};
|
||||
|
||||
if (property_affects_layout(property_id)) {
|
||||
// FIXME: Be smarter about updating layout if there's no layout node.
|
||||
// We may legitimately have no layout node if we're not visible, but this protects against situations
|
||||
// where we're requesting the computed style before layout has happened.
|
||||
if (!m_element->layout_node() || property_affects_layout(property_id)) {
|
||||
const_cast<DOM::Document&>(m_element->document()).update_layout();
|
||||
} else {
|
||||
// FIXME: If we had a way to update style for a single element, this would be a good place to use it.
|
||||
|
|
Loading…
Reference in a new issue