LibWeb: Rename is_scrollable() to could_be_scrolled_by_wheel_event()

Previous name for misleading because it checks if box could be scrolled
by user input event which is diffent from checking if box is scrollable.
For example box with `overflow: hidden` is scrollable but it can't be
scrolled by user input event.
This commit is contained in:
Aliaksandr Kalenik 2025-01-30 15:47:09 +01:00 committed by Jelle Raaijmakers
commit 74dde4dc0f
Notes: github-actions[bot] 2025-01-30 23:39:27 +00:00
4 changed files with 10 additions and 10 deletions

View file

@ -1651,7 +1651,7 @@ void Node::serialize_tree_as_json(JsonObjectSerializer<StringBuilder>& object) c
} }
if (paintable_box()) { if (paintable_box()) {
if (paintable_box()->is_scrollable()) { if (paintable_box()->could_be_scrolled_by_wheel_event()) {
MUST(object.add("scrollable"sv, true)); MUST(object.add("scrollable"sv, true));
} }
if (!paintable_box()->is_visible()) { if (!paintable_box()->is_visible()) {

View file

@ -335,7 +335,7 @@ void PaintableBox::after_paint(PaintContext& context, [[maybe_unused]] PaintPhas
} }
} }
bool PaintableBox::is_scrollable(ScrollDirection direction) const bool PaintableBox::could_be_scrolled_by_wheel_event(ScrollDirection direction) const
{ {
auto overflow = direction == ScrollDirection::Horizontal ? computed_values().overflow_x() : computed_values().overflow_y(); auto overflow = direction == ScrollDirection::Horizontal ? computed_values().overflow_x() : computed_values().overflow_y();
auto scrollable_overflow_rect = this->scrollable_overflow_rect(); auto scrollable_overflow_rect = this->scrollable_overflow_rect();
@ -348,9 +348,9 @@ bool PaintableBox::is_scrollable(ScrollDirection direction) const
return overflow == CSS::Overflow::Scroll; return overflow == CSS::Overflow::Scroll;
} }
bool PaintableBox::is_scrollable() const bool PaintableBox::could_be_scrolled_by_wheel_event() const
{ {
return is_scrollable(ScrollDirection::Horizontal) || is_scrollable(ScrollDirection::Vertical); return could_be_scrolled_by_wheel_event(ScrollDirection::Horizontal) || could_be_scrolled_by_wheel_event(ScrollDirection::Vertical);
} }
static constexpr CSSPixels scrollbar_thumb_thickness = 8; static constexpr CSSPixels scrollbar_thumb_thickness = 8;
@ -375,7 +375,7 @@ Optional<CSSPixelRect> PaintableBox::scroll_thumb_rect(ScrollDirection direction
Optional<PaintableBox::ScrollbarData> PaintableBox::compute_scrollbar_data(ScrollDirection direction) const Optional<PaintableBox::ScrollbarData> PaintableBox::compute_scrollbar_data(ScrollDirection direction) const
{ {
if (!is_scrollable(direction)) { if (!could_be_scrolled_by_wheel_event(direction)) {
return {}; return {};
} }
@ -907,7 +907,7 @@ Paintable::DispatchEventOfSameName PaintableBox::handle_mousemove(Badge<EventHan
bool PaintableBox::handle_mousewheel(Badge<EventHandler>, CSSPixelPoint, unsigned, unsigned, int wheel_delta_x, int wheel_delta_y) bool PaintableBox::handle_mousewheel(Badge<EventHandler>, CSSPixelPoint, unsigned, unsigned, int wheel_delta_x, int wheel_delta_y)
{ {
if (!is_scrollable()) { if (!could_be_scrolled_by_wheel_event()) {
return false; return false;
} }
@ -1360,7 +1360,7 @@ PaintableBox const* PaintableBox::nearest_scrollable_ancestor() const
{ {
auto const* paintable = this->containing_block(); auto const* paintable = this->containing_block();
while (paintable) { while (paintable) {
if (paintable->is_scrollable()) if (paintable->could_be_scrolled_by_wheel_event())
return paintable; return paintable;
if (paintable->is_fixed_position()) if (paintable->is_fixed_position())
return nullptr; return nullptr;

View file

@ -232,7 +232,7 @@ public:
StickyInsets const& sticky_insets() const { return *m_sticky_insets; } StickyInsets const& sticky_insets() const { return *m_sticky_insets; }
void set_sticky_insets(OwnPtr<StickyInsets> sticky_insets) { m_sticky_insets = move(sticky_insets); } void set_sticky_insets(OwnPtr<StickyInsets> sticky_insets) { m_sticky_insets = move(sticky_insets); }
[[nodiscard]] bool is_scrollable() const; [[nodiscard]] bool could_be_scrolled_by_wheel_event() const;
void set_used_values_for_grid_template_columns(RefPtr<CSS::GridTrackSizeListStyleValue> style_value) { m_used_values_for_grid_template_columns = move(style_value); } void set_used_values_for_grid_template_columns(RefPtr<CSS::GridTrackSizeListStyleValue> style_value) { m_used_values_for_grid_template_columns = move(style_value); }
RefPtr<CSS::GridTrackSizeListStyleValue> const& used_values_for_grid_template_columns() const { return m_used_values_for_grid_template_columns; } RefPtr<CSS::GridTrackSizeListStyleValue> const& used_values_for_grid_template_columns() const { return m_used_values_for_grid_template_columns; }
@ -262,7 +262,7 @@ protected:
}; };
Optional<ScrollbarData> compute_scrollbar_data(ScrollDirection) const; Optional<ScrollbarData> compute_scrollbar_data(ScrollDirection) const;
[[nodiscard]] Optional<CSSPixelRect> scroll_thumb_rect(ScrollDirection) const; [[nodiscard]] Optional<CSSPixelRect> scroll_thumb_rect(ScrollDirection) const;
[[nodiscard]] bool is_scrollable(ScrollDirection) const; [[nodiscard]] bool could_be_scrolled_by_wheel_event(ScrollDirection) const;
TraversalDecision hit_test_scrollbars(CSSPixelPoint position, Function<TraversalDecision(HitTestResult)> const& callback) const; TraversalDecision hit_test_scrollbars(CSSPixelPoint position, Function<TraversalDecision(HitTestResult)> const& callback) const;

View file

@ -194,7 +194,7 @@ void ViewportPaintable::refresh_scroll_state()
CSSPixels min_x_offset_relative_to_nearest_scrollable_ancestor; CSSPixels min_x_offset_relative_to_nearest_scrollable_ancestor;
CSSPixels max_x_offset_relative_to_nearest_scrollable_ancestor; CSSPixels max_x_offset_relative_to_nearest_scrollable_ancestor;
auto const* containing_block_of_sticky_box = sticky_box.containing_block(); auto const* containing_block_of_sticky_box = sticky_box.containing_block();
if (containing_block_of_sticky_box->is_scrollable()) { if (containing_block_of_sticky_box->could_be_scrolled_by_wheel_event()) {
min_y_offset_relative_to_nearest_scrollable_ancestor = 0; min_y_offset_relative_to_nearest_scrollable_ancestor = 0;
max_y_offset_relative_to_nearest_scrollable_ancestor = containing_block_of_sticky_box->scrollable_overflow_rect()->height() - sticky_box.absolute_border_box_rect().height(); max_y_offset_relative_to_nearest_scrollable_ancestor = containing_block_of_sticky_box->scrollable_overflow_rect()->height() - sticky_box.absolute_border_box_rect().height();
min_x_offset_relative_to_nearest_scrollable_ancestor = 0; min_x_offset_relative_to_nearest_scrollable_ancestor = 0;