1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:37:46 +00:00

LibWeb: Improve Layout::Box has-definite-size? computation

We now consider a layout box as having definite size in these cases:

- The size is a <length>.
- The size is a <percentage> and the containing block has definite size.

This is not complete, but a bit more accurate than what we had before.
This commit is contained in:
Andreas Kling 2022-02-27 17:10:19 +01:00
parent c6cf240f9a
commit cd5c17d88e
2 changed files with 26 additions and 5 deletions

View file

@ -571,10 +571,14 @@ void Document::update_layout()
Layout::BlockFormattingContext root_formatting_context(formatting_state, *m_layout_root, nullptr);
m_layout_root->build_stacking_context_tree();
auto& icb_state = formatting_state.get_mutable(*m_layout_root);
auto& icb = static_cast<Layout::InitialContainingBlock&>(*m_layout_root);
auto& icb_state = formatting_state.get_mutable(icb);
icb_state.content_width = viewport_rect.width();
icb_state.content_height = viewport_rect.height();
icb.set_has_definite_width(true);
icb.set_has_definite_height(true);
root_formatting_context.run(*m_layout_root, Layout::LayoutMode::Default);
formatting_state.commit();