mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:17:36 +00:00
LibWeb: Hang StackingContext off of the paint boxes
Stacking contexts have nothing to do with layout and everything with painting, so let's keep them in Painting::Box.
This commit is contained in:
parent
cc8e429126
commit
9f5cbcaad3
10 changed files with 39 additions and 38 deletions
|
@ -24,18 +24,18 @@ InitialContainingBlock::~InitialContainingBlock()
|
|||
|
||||
void InitialContainingBlock::build_stacking_context_tree()
|
||||
{
|
||||
set_stacking_context(make<Painting::StackingContext>(*this, nullptr));
|
||||
m_paint_box->set_stacking_context(make<Painting::StackingContext>(*this, nullptr));
|
||||
|
||||
for_each_in_inclusive_subtree_of_type<Box>([&](Box& box) {
|
||||
if (&box == this)
|
||||
return IterationDecision::Continue;
|
||||
if (!box.establishes_stacking_context()) {
|
||||
VERIFY(!box.stacking_context());
|
||||
VERIFY(!box.m_paint_box->stacking_context());
|
||||
return IterationDecision::Continue;
|
||||
}
|
||||
auto* parent_context = box.enclosing_stacking_context();
|
||||
auto* parent_context = box.m_paint_box->enclosing_stacking_context();
|
||||
VERIFY(parent_context);
|
||||
box.set_stacking_context(make<Painting::StackingContext>(box, parent_context));
|
||||
box.m_paint_box->set_stacking_context(make<Painting::StackingContext>(box, parent_context));
|
||||
return IterationDecision::Continue;
|
||||
});
|
||||
}
|
||||
|
@ -44,12 +44,12 @@ void InitialContainingBlock::paint_all_phases(PaintContext& context)
|
|||
{
|
||||
context.painter().fill_rect(enclosing_int_rect(m_paint_box->absolute_rect()), context.palette().base());
|
||||
context.painter().translate(-context.viewport_rect().location());
|
||||
stacking_context()->paint(context);
|
||||
m_paint_box->stacking_context()->paint(context);
|
||||
}
|
||||
|
||||
HitTestResult InitialContainingBlock::hit_test(const Gfx::IntPoint& position, HitTestType type) const
|
||||
{
|
||||
return stacking_context()->hit_test(position, type);
|
||||
return m_paint_box->stacking_context()->hit_test(position, type);
|
||||
}
|
||||
|
||||
void InitialContainingBlock::recompute_selection_states()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue