mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:47:44 +00:00
LibWeb: Move set_needs_display() from layout node to paintable
For this method, there is no need to go through the layout node when we can directly reach the paintable.
This commit is contained in:
parent
814bed33b4
commit
7c2713c14f
21 changed files with 97 additions and 87 deletions
|
@ -226,31 +226,6 @@ Viewport& Node::root()
|
|||
return *document().layout_node();
|
||||
}
|
||||
|
||||
void Node::set_needs_display()
|
||||
{
|
||||
auto* containing_block = this->containing_block();
|
||||
if (!containing_block)
|
||||
return;
|
||||
if (!containing_block->paintable_box())
|
||||
return;
|
||||
auto navigable = this->navigable();
|
||||
if (!navigable)
|
||||
return;
|
||||
|
||||
if (this->paintable() && is<Painting::InlinePaintable>(this->paintable())) {
|
||||
auto const& fragments = static_cast<Painting::InlinePaintable*>(this->paintable())->fragments();
|
||||
for (auto const& fragment : fragments)
|
||||
navigable->set_needs_display(fragment.absolute_rect());
|
||||
}
|
||||
|
||||
if (!is<Painting::PaintableWithLines>(*containing_block->paintable_box()))
|
||||
return;
|
||||
static_cast<Painting::PaintableWithLines const&>(*containing_block->paintable_box()).for_each_fragment([&](auto& fragment) {
|
||||
navigable->set_needs_display(fragment.absolute_rect());
|
||||
return IterationDecision::Continue;
|
||||
});
|
||||
}
|
||||
|
||||
bool Node::is_floating() const
|
||||
{
|
||||
if (!has_style())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue