1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:28:10 +00:00
serenity/Libraries/LibWeb/Layout
Andreas Kling 96da15a8a4 LibWeb: Respect CSS z-index property while painting
To support z-ordering when painting, the layout tree now has a parallel
sparse tree of stacking contexts. The rules for which layout boxes
establish a stacking context are a bit complex, but the intent is to
encapsulate the decision making into establishes_stacking_context().

When we paint, we start from the ICB (LayoutDocument) who always has a
StackingContext and then paint the tree of StackingContexts where each
node has its children sorted by z-index.

This is pretty crude, but gets the basic job done. Note that this does
not yet support hit testing; hit testing is still done using a naive
treewalk from the root.
2020-06-15 17:56:00 +02:00
..
BoxModelMetrics.cpp LibWeb: Rename BoxModelMetrics::full_margin() => margin_box() 2020-06-12 13:44:11 +02:00
BoxModelMetrics.h LibWeb: Rename BoxModelMetrics::full_margin() => margin_box() 2020-06-12 13:44:11 +02:00
LayoutBlock.cpp LibWeb: Don't assert when containing block doesn't know how to place 2020-06-14 22:07:00 +02:00
LayoutBlock.h LibWeb: Reorganize layout algorithm 2020-06-14 19:01:54 +02:00
LayoutBox.cpp LibWeb: Respect CSS z-index property while painting 2020-06-15 17:56:00 +02:00
LayoutBox.h LibWeb: Respect CSS z-index property while painting 2020-06-15 17:56:00 +02:00
LayoutBreak.cpp LibWeb: Basic support for display:inline-block with width:auto 2020-05-26 22:02:27 +02:00
LayoutBreak.h LibWeb: Basic support for display:inline-block with width:auto 2020-05-26 22:02:27 +02:00
LayoutCanvas.cpp LibWeb: Rework the layout engine to use relative offsets 2020-06-10 10:46:57 +02:00
LayoutCanvas.h LibWeb: Basic support for display:inline-block with width:auto 2020-05-26 22:02:27 +02:00
LayoutDocument.cpp LibWeb: Respect CSS z-index property while painting 2020-06-15 17:56:00 +02:00
LayoutDocument.h LibWeb: Respect CSS z-index property while painting 2020-06-15 17:56:00 +02:00
LayoutFrame.cpp LibWeb: Don't choke when trying to render a document-less <iframe> 2020-06-14 15:32:38 +02:00
LayoutFrame.h LibWeb: Start adding support for the <iframe> element! :^) 2020-06-05 23:36:02 +02:00
LayoutImage.cpp LibWeb: Move "visible in viewport" state tracking to ImageLoader 2020-06-14 19:32:23 +02:00
LayoutImage.h LibWeb: Move "visible in viewport" state tracking to ImageLoader 2020-06-14 19:32:23 +02:00
LayoutInline.cpp LibWeb: Rename directory LibHTML => LibWeb 2020-03-07 10:32:51 +01:00
LayoutInline.h LibWeb: Rename directory LibHTML => LibWeb 2020-03-07 10:32:51 +01:00
LayoutListItem.cpp LibWeb: Rework the layout engine to use relative offsets 2020-06-10 10:46:57 +02:00
LayoutListItem.h LibWeb: Basic support for display:inline-block with width:auto 2020-05-26 22:02:27 +02:00
LayoutListItemMarker.cpp LibGfx: Rename Rect,Point,Size => IntRect,IntPoint,IntSize 2020-06-10 10:59:04 +02:00
LayoutListItemMarker.h LibWeb: Rename directory LibHTML => LibWeb 2020-03-07 10:32:51 +01:00
LayoutNode.cpp LibWeb: Respect CSS z-index property while painting 2020-06-15 17:56:00 +02:00
LayoutNode.h LibWeb: Add LayoutNode::frame() reference getter 2020-06-14 16:45:45 +02:00
LayoutPosition.h LibWeb: Rename directory LibHTML => LibWeb 2020-03-07 10:32:51 +01:00
LayoutReplaced.cpp LibWeb: Reorganize layout algorithm 2020-06-14 19:01:54 +02:00
LayoutReplaced.h LibWeb: Reorganize layout algorithm 2020-06-14 19:01:54 +02:00
LayoutTable.cpp LibWeb: Remove some unused functions from LayoutTable 2020-06-14 19:06:02 +02:00
LayoutTable.h LibWeb: Remove some unused functions from LayoutTable 2020-06-14 19:06:02 +02:00
LayoutTableCell.cpp LibWeb: Add LayoutTableCell::colspan() 2020-06-13 00:10:52 +02:00
LayoutTableCell.h LibWeb: Add LayoutTableCell::colspan() 2020-06-13 00:10:52 +02:00
LayoutTableRow.cpp LibWeb: Remove some unused functions in LayoutTableRow 2020-06-13 15:30:27 +02:00
LayoutTableRow.h LibWeb: Remove some unused functions in LayoutTableRow 2020-06-13 15:30:27 +02:00
LayoutTableRowGroup.cpp LibWeb: Reorganize layout algorithm 2020-06-14 19:01:54 +02:00
LayoutTableRowGroup.h LibWeb: More work on table layout 2020-06-13 00:12:23 +02:00
LayoutText.cpp LibWeb: Teach line layout to collapse whitespace across fragments 2020-06-13 15:03:16 +02:00
LayoutText.h LibWeb: Basic support for display:inline-block with width:auto 2020-05-26 22:02:27 +02:00
LayoutTreeBuilder.cpp LibWeb: Whine in debug log instead of asserting on partial layout FIXME 2020-06-06 22:15:17 +02:00
LayoutTreeBuilder.h LibWeb: Rename directory LibHTML => LibWeb 2020-03-07 10:32:51 +01:00
LayoutWidget.cpp LibWeb: Add LayoutNode::frame() reference getter 2020-06-14 16:45:45 +02:00
LayoutWidget.h LibWeb: Simplify LayoutWidget layout 2020-06-05 21:50:03 +02:00
LineBox.cpp LibWeb: Teach line layout to collapse whitespace across fragments 2020-06-13 15:03:16 +02:00
LineBox.h LibWeb: Teach line layout to collapse whitespace across fragments 2020-06-13 15:03:16 +02:00
LineBoxFragment.cpp LibWeb: Teach line layout to collapse whitespace across fragments 2020-06-13 15:03:16 +02:00
LineBoxFragment.h LibWeb: Teach line layout to collapse whitespace across fragments 2020-06-13 15:03:16 +02:00
StackingContext.cpp LibWeb: Respect CSS z-index property while painting 2020-06-15 17:56:00 +02:00
StackingContext.h LibWeb: Respect CSS z-index property while painting 2020-06-15 17:56:00 +02:00