diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp index bfb44994ac..ba9d26f7e7 100644 --- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -849,7 +849,7 @@ void GridFormattingContext::distribute_extra_space_across_spanned_tracks_base_si // Find the item-incurred increase for each spanned track with an affected size by: distributing the space // equally among such tracks, freezing a track’s item-incurred increase as its affected size + item-incurred // increase reaches its limit - CSSPixels increase_per_track = max(extra_space / affected_tracks.size(), CSSPixels::smallest_positive_value()); + CSSPixels increase_per_track = max(CSSPixels::smallest_positive_value(), extra_space / affected_tracks.size()); for (auto& track : affected_tracks) { if (track.base_size_frozen) continue; diff --git a/Userland/Libraries/LibWeb/PixelUnits.h b/Userland/Libraries/LibWeb/PixelUnits.h index 01aacf3692..e8ce2b439d 100644 --- a/Userland/Libraries/LibWeb/PixelUnits.h +++ b/Userland/Libraries/LibWeb/PixelUnits.h @@ -324,6 +324,20 @@ public: return CSSPixels::from_raw(AK::clamp_to_int(wide_value)); } + constexpr CSSPixels operator-(CSSPixels const& other) const + { + return CSSPixels(*this) - other; + } + constexpr CSSPixels operator+(CSSPixels const& other) const + { + return CSSPixels(*this) + other; + } + + constexpr CSSPixelFraction operator-() const + { + return CSSPixelFraction(-numerator(), denominator()); + } + constexpr int operator<=>(CSSPixelFraction const& other) const { auto left = static_cast(m_numerator.raw_value()) * other.m_denominator.raw_value(); @@ -375,7 +389,7 @@ constexpr CSSPixels CSSPixels::operator/(CSSPixelFraction const& other) const } template -constexpr CSSPixels operator/(CSSPixels left, T right) { return left / CSSPixels(right); } +constexpr CSSPixelFraction operator/(CSSPixels left, T right) { return left / CSSPixels(right); } inline float operator/(CSSPixels left, float right) { return left.to_float() / right; } inline double operator/(CSSPixels left, double right) { return left.to_double() / right; }