1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-07 08:17:36 +00:00
serenity/Userland/Libraries/LibWeb/Layout
Andreas Kling 25a3d0d643 LibWeb: Resolve relative offsets *once* after layout
Instead of applying relative offsets (like position:relative insets)
during painting and hit testing, we now do a pass at the end of layout
and assign the final resolved offsets to paintables.

This makes painting and hit testing easier since they don't have to
think about relative offsets, and it also fixes a bug where offsets were
not applied to text fragments inside inline-flow elements that were
themselves position:relative.
2023-08-15 16:37:11 +02:00
..
AudioBox.cpp LibWeb: Begin implementing the HTMLAudioElement for audio playback 2023-06-13 06:14:01 +02:00
AudioBox.h LibWeb: Begin implementing the HTMLAudioElement for audio playback 2023-06-13 06:14:01 +02:00
AvailableSpace.cpp LibWeb+WebContent: Forbid access to underlying type of CSSPixels 2023-06-13 06:08:27 +02:00
AvailableSpace.h LibWeb: Delete unused AvailableSize::to_px() 2023-08-12 20:06:01 +02:00
BlockContainer.cpp LibWeb/Layout: Rename BlockContainer::paint{_box => able_with_lines}() 2023-04-20 20:43:30 +02:00
BlockContainer.h LibWeb/Layout: Rename BlockContainer::paint{_box => able_with_lines}() 2023-04-20 20:43:30 +02:00
BlockFormattingContext.cpp LibWeb: Fix handling of max-content containing block for floating box 2023-08-13 14:43:41 +02:00
BlockFormattingContext.h LibWeb: Better handling of floating boxes from inline formatting context 2023-08-01 07:38:19 +02:00
Box.cpp LibWeb: Rename is_scrollable() to is_user_scrollable() 2023-08-08 16:55:14 +02:00
Box.h LibWeb: Rename is_scrollable() to is_user_scrollable() 2023-08-08 16:55:14 +02:00
BoxModelMetrics.cpp
BoxModelMetrics.h LibWeb+Browser+WebContent: Convert BoxModelMetrics to new pixel units 2023-01-05 17:42:31 +01:00
BreakNode.cpp LibWeb: Remove Layout::Node::set_inline() 2022-10-06 15:29:38 +02:00
BreakNode.h LibWeb: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00
ButtonBox.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
ButtonBox.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
CanvasBox.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
CanvasBox.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
CheckBox.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
CheckBox.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
FlexFormattingContext.cpp LibWeb: Replace to_px() with to_px_or_zero() in FlexFormattingContext 2023-08-12 20:06:01 +02:00
FlexFormattingContext.h LibWeb: Support more kinds of indefinite widths on flex column items 2023-08-05 10:58:12 +02:00
FormAssociatedLabelableNode.h LibWeb: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00
FormattingContext.cpp LibWeb: Make containing_block_{width,height}_for(...) take non-box nodes 2023-08-15 16:37:11 +02:00
FormattingContext.h LibWeb: Resolve CSS inset properties when entering inline-flow elements 2023-08-15 16:37:11 +02:00
FrameBox.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
FrameBox.h LibWeb: Fix iframes flickering on window resize 2023-05-15 14:08:08 +02:00
GridFormattingContext.cpp LibWeb: Replace to_px() with to_px_or_zero() in GridFormattingContext 2023-08-12 20:06:01 +02:00
GridFormattingContext.h LibWeb: Remove boxes_to_place from GridFormattingContext class members 2023-08-09 18:01:36 +02:00
ImageBox.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
ImageBox.h LibWeb: Don't force HTMLImageElement to have a legacy ImageLoader 2023-05-13 09:08:42 +02:00
ImageProvider.h LibWeb: Have ImageProvider bitmap getter take optional size argument 2023-05-21 07:44:29 +02:00
InlineFormattingContext.cpp LibWeb: Replace to_px() with to_px_or_zero() in InlineFormattingContext 2023-08-12 20:06:01 +02:00
InlineFormattingContext.h LibWeb: Replace to_px() with to_px_or_zero() in InlineFormattingContext 2023-08-12 20:06:01 +02:00
InlineLevelIterator.cpp LibWeb: Resolve CSS inset properties when entering inline-flow elements 2023-08-15 16:37:11 +02:00
InlineLevelIterator.h LibWeb: Replace to_px() with to_px_or_zero() in InlineFormattingContext 2023-08-12 20:06:01 +02:00
InlineNode.cpp LibWeb: Make the paint tree GC-allocated 2023-01-11 12:55:00 +01:00
InlineNode.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
Label.cpp LibWeb/Layout: Rename BlockContainer::paint{_box => able_with_lines}() 2023-04-20 20:43:30 +02:00
Label.h LibWeb+WebContent+headless-browser: Use CSSPixels for PageClient events 2022-12-10 12:03:19 +00:00
LabelableNode.cpp LibWeb: Move mouse event and label logic from layout to painting tree 2022-03-11 00:21:49 +01:00
LabelableNode.h LibWeb: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00
LayoutState.cpp LibWeb: Resolve relative offsets *once* after layout 2023-08-15 16:37:11 +02:00
LayoutState.h LibWeb: Resolve relative offsets *once* after layout 2023-08-15 16:37:11 +02:00
LineBox.cpp LibWeb: Fix whitespace getting trimmed incorrectly 2023-07-17 21:47:34 +02:00
LineBox.h LibWeb: Replace to_px() with to_px_or_zero() in InlineFormattingContext 2023-08-12 20:06:01 +02:00
LineBoxFragment.cpp LibWeb/Layout: Rename Box::{paint => paintable}_box() 2023-04-20 20:43:30 +02:00
LineBoxFragment.h LibWeb: Remove unused code 2023-07-17 18:54:54 +02:00
LineBuilder.cpp LibWeb: Replace to_px() with to_px_or_zero() in InlineFormattingContext 2023-08-12 20:06:01 +02:00
LineBuilder.h LibWeb: Replace to_px() with to_px_or_zero() in InlineFormattingContext 2023-08-12 20:06:01 +02:00
ListItemBox.cpp LibWeb: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00
ListItemBox.h LibWeb: Add fast_is<T>() for various types stood out in a profile 2023-03-11 10:46:26 +01:00
ListItemMarkerBox.cpp LibWeb: Support list-style-position 2023-06-03 05:54:49 +02:00
ListItemMarkerBox.h LibWeb: Support list-style-position 2023-06-03 05:54:49 +02:00
Node.cpp LibWeb: Add table-layout CSS property 2023-08-09 08:33:02 +01:00
Node.h LibWeb: Copy button style properties for generated table and cell 2023-08-12 13:36:37 +02:00
Progress.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
Progress.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
RadioButton.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
RadioButton.h LibWeb: Make the paint tree GC-allocated 2023-01-11 12:55:00 +01:00
ReplacedBox.cpp LibWeb: Remove Layout::Node::set_inline() 2022-10-06 15:29:38 +02:00
ReplacedBox.h LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
SVGBox.cpp LibWeb: Make SVG <svg> elements behave as CSS replaced elements 2022-03-19 12:42:10 +01:00
SVGBox.h LibWeb: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00
SVGFormattingContext.cpp LibWeb: Allow (explicitly) converting CSSPixels to float and int 2023-08-08 14:58:26 +02:00
SVGFormattingContext.h LibWeb: Let FormattingContext decide the automatic width of its root 2023-03-20 17:57:58 +01:00
SVGGeometryBox.cpp LibWeb: Allow (explicitly) converting CSSPixels to float and int 2023-08-08 14:58:26 +02:00
SVGGeometryBox.h LibWeb: Don't try to paint SVG elements transformed to zero size 2023-04-12 07:40:22 +02:00
SVGGraphicsBox.cpp LibWeb: Make SVG <g> elements generate a SVGGraphicsPaintable 2023-04-19 07:52:26 +02:00
SVGGraphicsBox.h LibWeb: Make SVG <g> elements generate a SVGGraphicsPaintable 2023-04-19 07:52:26 +02:00
SVGSVGBox.cpp LibWeb+WebContent: Forbid access to underlying type of CSSPixels 2023-06-13 06:08:27 +02:00
SVGSVGBox.h LibWeb: Support <svg> elements with display: block 2023-05-20 08:49:42 +02:00
SVGTextBox.cpp LibWeb: Allow (explicitly) converting CSSPixels to float and int 2023-08-08 14:58:26 +02:00
SVGTextBox.h LibWeb: Split SVGTextContentElement into spec defined subclasses 2023-07-23 06:32:39 +02:00
TableFormattingContext.cpp LibWeb: Use cell width instead available width to compute height 2023-08-14 13:14:24 +02:00
TableFormattingContext.h LibWeb: Use cell width instead available width to compute height 2023-08-14 13:14:24 +02:00
TableWrapper.cpp LibWeb: Override width calculation for table wrappers 2023-01-14 19:22:08 +01:00
TableWrapper.h LibWeb: Override width calculation for table wrappers 2023-01-14 19:22:08 +01:00
TextNode.cpp Revert "LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:""" 2023-08-02 17:35:54 +02:00
TextNode.h Revert "LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:""" 2023-08-02 17:35:54 +02:00
TreeBuilder.cpp LibJS: Make Heap::allocate<T>() infallible 2023-08-13 15:38:42 +02:00
TreeBuilder.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
VideoBox.cpp LibWeb: Remove unused VideoBox preferred width/height methods 2023-08-01 11:14:26 -04:00
VideoBox.h LibWeb: Remove unused VideoBox preferred width/height methods 2023-08-01 11:14:26 -04:00
Viewport.cpp LibWeb: Add non-const version of paintable_box() in Layout::Node 2023-08-07 05:23:31 +02:00
Viewport.h LibWeb: Rename Layout::InitialContainingBlock to Layout::Viewport 2023-02-28 12:21:56 +01:00