1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:37:35 +00:00

LibWeb: Add partial implementation of border conflict resolution

Fix handling of border style specified per column as well.
This commit is contained in:
Andi Gallo 2023-06-04 14:21:20 +00:00 committed by Andreas Kling
parent 6c2712764d
commit 8090adf268
9 changed files with 282 additions and 16 deletions

View file

@ -39,6 +39,7 @@ private:
void distribute_height_to_rows();
void position_row_boxes(CSSPixels&);
void position_cell_boxes();
void border_conflict_resolution();
CSSPixels m_table_height { 0 };
CSSPixels m_automatic_content_height { 0 };
@ -81,6 +82,25 @@ private:
CSSPixels compute_row_content_height(Cell const& cell) const;
enum class ConflictingEdge {
Top,
Right,
Bottom,
Left,
};
class BorderConflictFinder {
public:
BorderConflictFinder(TableFormattingContext const* context);
Vector<Node const*> conflicting_elements(Cell const&, ConflictingEdge) const;
private:
void collect_conflicting_col_elements();
Vector<Node const*> m_col_elements_by_index;
TableFormattingContext const* m_context;
};
Vector<Cell> m_cells;
Vector<Column> m_columns;
Vector<Row> m_rows;