mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-19 15:43:20 +00:00
LibWeb: Get rid of PaintableBox::is_viewport()
This function used layout node pointer to check if it's corresponding to viewport. There is no need for that, since `is_viewport_paintable()` does exactly the same check without going through layout node.
This commit is contained in:
parent
1ffb0ca311
commit
81aeee3fb4
Notes:
github-actions[bot]
2025-10-14 09:25:05 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: 81aeee3fb4
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6465
5 changed files with 9 additions and 11 deletions
|
@ -1245,7 +1245,7 @@ Vector<CSSPixelRect> Element::get_client_rects() const
|
|||
Vector<CSSPixelRect> rects;
|
||||
if (auto const* paintable_box = this->paintable_box()) {
|
||||
transform = Gfx::extract_2d_affine_transform(paintable_box->transform());
|
||||
for (auto const* containing_block = paintable->containing_block(); !containing_block->is_viewport(); containing_block = containing_block->containing_block()) {
|
||||
for (auto const* containing_block = paintable->containing_block(); !containing_block->is_viewport_paintable(); containing_block = containing_block->containing_block()) {
|
||||
transform = Gfx::extract_2d_affine_transform(containing_block->transform()).multiply(transform);
|
||||
}
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ void paint_background(DisplayListRecordingContext& context, PaintableBox const&
|
|||
background_positioning_area.set_location(paintable_box.layout_node().root().navigable()->viewport_scroll_offset());
|
||||
break;
|
||||
case CSS::BackgroundAttachment::Local:
|
||||
if (!paintable_box.is_viewport()) {
|
||||
if (!paintable_box.is_viewport_paintable()) {
|
||||
auto scroll_offset = paintable_box.scroll_offset();
|
||||
background_positioning_area.translate_by(-scroll_offset.x(), -scroll_offset.y());
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ PaintableWithLines::~PaintableWithLines()
|
|||
|
||||
CSSPixelPoint PaintableBox::scroll_offset() const
|
||||
{
|
||||
if (is_viewport()) {
|
||||
if (is_viewport_paintable()) {
|
||||
auto navigable = document().navigable();
|
||||
VERIFY(navigable);
|
||||
return navigable->viewport_scroll_offset();
|
||||
|
@ -361,7 +361,7 @@ bool PaintableBox::could_be_scrolled_by_wheel_event(ScrollDirection direction) c
|
|||
auto scrollable_overflow_size = direction == ScrollDirection::Horizontal ? scrollable_overflow_rect->width() : scrollable_overflow_rect->height();
|
||||
auto scrollport_size = direction == ScrollDirection::Horizontal ? absolute_padding_box_rect().width() : absolute_padding_box_rect().height();
|
||||
auto overflow_value_allows_scrolling = overflow == CSS::Overflow::Auto || overflow == CSS::Overflow::Scroll;
|
||||
if ((is_viewport() && overflow != CSS::Overflow::Hidden) || overflow_value_allows_scrolling)
|
||||
if ((is_viewport_paintable() && overflow != CSS::Overflow::Hidden) || overflow_value_allows_scrolling)
|
||||
return scrollable_overflow_size > scrollport_size;
|
||||
return false;
|
||||
}
|
||||
|
@ -488,7 +488,7 @@ void PaintableBox::paint(DisplayListRecordingContext& context, PaintPhase phase)
|
|||
}
|
||||
}
|
||||
|
||||
if (phase == PaintPhase::Overlay && (g_paint_viewport_scrollbars || !is_viewport()) && computed_values().scrollbar_width() != CSS::ScrollbarWidth::None) {
|
||||
if (phase == PaintPhase::Overlay && (g_paint_viewport_scrollbars || !is_viewport_paintable()) && computed_values().scrollbar_width() != CSS::ScrollbarWidth::None) {
|
||||
auto scrollbar_colors = computed_values().scrollbar_color();
|
||||
if (auto scrollbar_data = compute_scrollbar_data(ScrollDirection::Vertical); scrollbar_data.has_value()) {
|
||||
auto gutter_rect = context.rounded_device_rect(scrollbar_data->gutter_rect).to_type<int>();
|
||||
|
@ -1153,10 +1153,10 @@ void PaintableBox::scroll_to_mouse_position(CSSPixelPoint position)
|
|||
auto scroll_position_in_pixels = CSSPixels::nearest_value_for(scroll_position * (scrollable_overflow_size - padding_size));
|
||||
|
||||
// Set the new scroll offset.
|
||||
auto new_scroll_offset = is_viewport() ? document().navigable()->viewport_scroll_offset() : scroll_offset();
|
||||
auto new_scroll_offset = is_viewport_paintable() ? document().navigable()->viewport_scroll_offset() : scroll_offset();
|
||||
new_scroll_offset.set_primary_offset_for_orientation(orientation, scroll_position_in_pixels);
|
||||
|
||||
if (is_viewport())
|
||||
if (is_viewport_paintable())
|
||||
document().navigable()->perform_scroll_of_viewport(new_scroll_offset);
|
||||
else
|
||||
(void)set_scroll_offset(new_scroll_offset);
|
||||
|
@ -1213,7 +1213,7 @@ TraversalDecision PaintableBox::hit_test(CSSPixelPoint position, HitTestType typ
|
|||
if (hit_test_scrollbars(position, callback) == TraversalDecision::Break)
|
||||
return TraversalDecision::Break;
|
||||
|
||||
if (is_viewport()) {
|
||||
if (is_viewport_paintable()) {
|
||||
auto& viewport_paintable = const_cast<ViewportPaintable&>(static_cast<ViewportPaintable const&>(*this));
|
||||
viewport_paintable.build_stacking_context_tree_if_needed();
|
||||
viewport_paintable.document().update_paint_and_hit_testing_properties_if_needed();
|
||||
|
|
|
@ -213,8 +213,6 @@ public:
|
|||
|
||||
Optional<CSSPixelRect> get_clip_rect() const;
|
||||
|
||||
bool is_viewport() const { return layout_node_with_style_and_box_metrics().is_viewport(); }
|
||||
|
||||
virtual bool wants_mouse_events() const override;
|
||||
|
||||
CSSPixelRect transform_box_rect() const;
|
||||
|
|
|
@ -139,7 +139,7 @@ void ViewportPaintable::assign_clip_frames()
|
|||
paintable_box.set_own_clip_frame(clip_frame.value());
|
||||
}
|
||||
}
|
||||
for (auto block = paintable.containing_block(); !block->is_viewport(); block = block->containing_block()) {
|
||||
for (auto block = paintable.containing_block(); !block->is_viewport_paintable(); block = block->containing_block()) {
|
||||
if (auto clip_frame = clip_state.get(block); clip_frame.has_value()) {
|
||||
if (paintable.is_paintable_box()) {
|
||||
auto& paintable_box = static_cast<PaintableBox&>(paintable);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue