mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 18:18:12 +00:00
LibWeb: Snap table grid to device pixels in separate borders mode
Build a grid snapped to device pixels and use it to construct the rectangles for the cell edges, same as for collapsed borders. This is especially important when border-spacing is set to 0 since it avoids gaps between adjacent cells which have borders set.
This commit is contained in:
parent
14091f32c6
commit
7bd00d6a42
7 changed files with 49 additions and 29 deletions
|
@ -104,11 +104,13 @@ void StackingContext::paint_descendants(PaintContext& context, Layout::Node cons
|
|||
case StackingContextPaintPhase::BackgroundAndBorders:
|
||||
if (!child_is_inline_or_replaced && !child.is_floating()) {
|
||||
paint_node(child, context, PaintPhase::Background);
|
||||
if ((!child.display().is_table_cell() && !child.display().is_table_inside()) || child.computed_values().border_collapse() == CSS::BorderCollapse::Separate)
|
||||
bool is_table_with_collapsed_borders = child.display().is_table_inside() && child.computed_values().border_collapse() == CSS::BorderCollapse::Collapse;
|
||||
if (!child.display().is_table_cell() && !is_table_with_collapsed_borders)
|
||||
paint_node(child, context, PaintPhase::Border);
|
||||
paint_descendants(context, child, phase);
|
||||
if (child.computed_values().border_collapse() == CSS::BorderCollapse::Collapse)
|
||||
paint_table_collapsed_borders(context, child);
|
||||
if (child.display().is_table_inside() || child.computed_values().border_collapse() == CSS::BorderCollapse::Collapse) {
|
||||
paint_table_borders(context, child);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case StackingContextPaintPhase::Floats:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue