From db318aece06874e34a95bacf934b470d1c7d38da Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 3 Nov 2022 18:44:40 +0100 Subject: [PATCH] LibWeb: Move should_treat_{width,height}_as_auto() to FormattingContext These are not specific to BFC, so let's move them up to the super class so that other layout classes can use them. --- .../LibWeb/Layout/BlockFormattingContext.cpp | 12 ------------ .../Libraries/LibWeb/Layout/BlockFormattingContext.h | 3 --- .../Libraries/LibWeb/Layout/FormattingContext.cpp | 12 ++++++++++++ Userland/Libraries/LibWeb/Layout/FormattingContext.h | 3 +++ 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp index 34236a73dc..da62152ab4 100644 --- a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp @@ -775,18 +775,6 @@ float BlockFormattingContext::greatest_child_width(Box const& box) return max_width; } -bool BlockFormattingContext::should_treat_width_as_auto(Box const& box, AvailableSpace const& available_space) -{ - return box.computed_values().width().is_auto() - || (box.computed_values().width().contains_percentage() && !available_space.width.is_definite()); -} - -bool BlockFormattingContext::should_treat_height_as_auto(Box const& box, AvailableSpace const& available_space) -{ - return box.computed_values().height().is_auto() - || (box.computed_values().height().contains_percentage() && !available_space.height.is_definite()); -} - void BlockFormattingContext::determine_width_of_child(Box const& box, AvailableSpace const& available_space) { compute_width(box, available_space); diff --git a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.h b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.h index 00f777d5d9..ae0bd84dd6 100644 --- a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.h +++ b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.h @@ -48,9 +48,6 @@ public: void layout_block_level_box(Box const&, BlockContainer const&, LayoutMode, float& bottom_of_lowest_margin_box, AvailableSpace const&); - static bool should_treat_width_as_auto(Box const&, AvailableSpace const&); - static bool should_treat_height_as_auto(Box const&, AvailableSpace const&); - virtual bool can_determine_size_of_child() const override { return true; } virtual void determine_width_of_child(Box const&, AvailableSpace const&) override; virtual void determine_height_of_child(Box const&, AvailableSpace const&) override; diff --git a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp index a1f47c7a6b..2a91f26c94 100644 --- a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp @@ -1399,4 +1399,16 @@ float FormattingContext::calculate_stretch_fit_height(Box const& box, AvailableS - box_state.border_bottom; } +bool FormattingContext::should_treat_width_as_auto(Box const& box, AvailableSpace const& available_space) +{ + return box.computed_values().width().is_auto() + || (box.computed_values().width().contains_percentage() && !available_space.width.is_definite()); +} + +bool FormattingContext::should_treat_height_as_auto(Box const& box, AvailableSpace const& available_space) +{ + return box.computed_values().height().is_auto() + || (box.computed_values().height().contains_percentage() && !available_space.height.is_definite()); +} + } diff --git a/Userland/Libraries/LibWeb/Layout/FormattingContext.h b/Userland/Libraries/LibWeb/Layout/FormattingContext.h index 92d170c710..79cc702506 100644 --- a/Userland/Libraries/LibWeb/Layout/FormattingContext.h +++ b/Userland/Libraries/LibWeb/Layout/FormattingContext.h @@ -82,6 +82,9 @@ public: protected: FormattingContext(Type, LayoutState&, Box const&, FormattingContext* parent = nullptr); + static bool should_treat_width_as_auto(Box const&, AvailableSpace const&); + static bool should_treat_height_as_auto(Box const&, AvailableSpace const&); + float calculate_fit_content_size(float min_content_size, float max_content_size, AvailableSize const&) const; OwnPtr layout_inside(Box const&, LayoutMode, AvailableSpace const&);