1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:38:11 +00:00
serenity/Userland/Libraries/LibWeb/Layout
Andreas Kling b289f97a65 LibWeb: Split intrinsic heights cache by definite available widths
As it turns out, we sometimes query the intrinsic height of a box before
having fully resolved and/or constrained its containing block. Because
of this, we may enter intrinsic sizing with different amounts of
available width for the same box.

To accommodate this scenario, we now allow caching of multiple intrinsic
heights, separated by the amount of available width provided as input.
2022-10-15 14:01:54 +02:00
..
AvailableSpace.cpp LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
AvailableSpace.h LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
BlockContainer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
BlockContainer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
BlockFormattingContext.cpp LibWeb: Resolve vertical margins against containing block width 2022-10-10 20:22:50 +02:00
BlockFormattingContext.h LibWeb: Resolve vertical margins against containing block width 2022-10-10 20:22:50 +02:00
Box.cpp LibWeb: Make Layout::Box::set_needs_display() work for all boxes 2022-04-12 00:11:48 +02:00
Box.h LibWeb: Move Layout::Box::is_out_of_flow() to Layout::Node 2022-03-22 19:26:51 +01:00
BoxModelMetrics.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BoxModelMetrics.h LibWeb: Rename "offset" in box model metrics to "inset" 2022-03-26 17:31:01 +01:00
BreakNode.cpp LibWeb: Remove Layout::Node::set_inline() 2022-10-06 15:29:38 +02:00
BreakNode.h LibWeb: Let Paintable perform the painting 2022-03-11 00:21:49 +01:00
ButtonBox.cpp LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
ButtonBox.h LibWeb: Refactor all LabelableNode subclasses + input event handling :^) 2022-03-16 00:38:31 +01:00
CanvasBox.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
CanvasBox.h LibWeb: Make Paintable ref-counted 2022-03-11 00:21:49 +01:00
CheckBox.cpp LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
CheckBox.h LibWeb: Refactor all LabelableNode subclasses + input event handling :^) 2022-03-16 00:38:31 +01:00
FlexFormattingContext.cpp LibWeb: Assign hypothetical flex item main sizes as temporary main size 2022-10-15 14:01:54 +02:00
FlexFormattingContext.h LibWeb: Implement basic support for align-content in flex layout 2022-10-14 19:50:15 +02:00
FormAssociatedLabelableNode.h LibWeb: Remove inheritance of FormAssociatedElement from HTMLElement 2022-03-24 03:35:11 +01:00
FormattingContext.cpp LibWeb: Split intrinsic heights cache by definite available widths 2022-10-15 14:01:54 +02:00
FormattingContext.h LibWeb: Implement CSS fit-content algorithm precisely as spec says 2022-10-14 19:53:52 +02:00
FrameBox.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
FrameBox.h LibWeb: Make Paintable ref-counted 2022-03-11 00:21:49 +01:00
GridFormattingContext.cpp LibWeb+Base: Deal with column-spans greater than implicit grid 2022-10-08 17:26:41 +02:00
GridFormattingContext.h LibWeb: Factor out OccupationGrid functions 2022-10-06 21:16:01 +02:00
ImageBox.cpp LibWeb: Get default fonts via Platform::FontPlugin 2022-09-17 21:27:32 +02:00
ImageBox.h LibWeb: Cache width of "alt" text in ImageBox 2022-09-07 17:47:33 +02:00
InitialContainingBlock.cpp LibWeb: Ignore non-painting layout nodes when building stacking contexts 2022-04-07 17:06:02 +02:00
InitialContainingBlock.h LibWeb: Break inclusion cycle by removing unnecessary include 2022-09-17 04:00:54 +00:00
InlineFormattingContext.cpp LibWeb: Make IFC happy to layout anything as long as it's inline outside 2022-10-06 21:08:50 +02:00
InlineFormattingContext.h LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
InlineLevelIterator.cpp LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:"" 2022-10-14 19:50:15 +02:00
InlineLevelIterator.h LibWeb: Add missing includes 2022-09-18 13:27:24 -04:00
InlineNode.cpp LibWeb: Remove Layout::Node::set_inline() 2022-10-06 15:29:38 +02:00
InlineNode.h LibWeb: Make Paintable ref-counted 2022-03-11 00:21:49 +01:00
Label.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Label.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01: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: Move mouse event and label logic from layout to painting tree 2022-03-11 00:21:49 +01:00
LayoutPosition.cpp LibWeb: Make AbstractRange and subclasses GC-allocated 2022-09-06 00:27:09 +02:00
LayoutPosition.h LibWeb: Make AbstractRange and subclasses GC-allocated 2022-09-06 00:27:09 +02:00
LayoutState.cpp LibWeb: Assign hypothetical flex item main sizes as temporary main size 2022-10-15 14:01:54 +02:00
LayoutState.h LibWeb: Split intrinsic heights cache by definite available widths 2022-10-15 14:01:54 +02:00
LineBox.cpp LibWeb: Respect inline-axis margins between line box fragments :^) 2022-03-09 18:47:32 +01:00
LineBox.h LibWeb: Bring CSS line-height implementation closer to spec 2022-03-24 22:52:44 +01:00
LineBoxFragment.cpp LibWeb: Rename FormattingState to LayoutState 2022-07-17 14:11:36 +02:00
LineBoxFragment.h LibWeb: Rename FormattingState to LayoutState 2022-07-17 14:11:36 +02:00
LineBuilder.cpp LibWeb: Fix bogus inline-block check in line box layout 2022-10-14 19:50:14 +02:00
LineBuilder.h LibWeb: Improve inline flow around floating boxes 2022-09-16 15:15:50 +02:00
ListItemBox.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
ListItemBox.h LibWeb: Make display: foo box constructors take the Element by pointer 2022-02-25 19:35:34 +01:00
ListItemMarkerBox.cpp LibWeb: Convert images to common AbstractImageStyleValue base 2022-08-08 22:39:06 +02:00
ListItemMarkerBox.h LibWeb: Convert images to common AbstractImageStyleValue base 2022-08-08 22:39:06 +02:00
Node.cpp LibWeb: Parse the CSS align-content property 2022-10-14 19:50:15 +02:00
Node.h LibWeb: Add Layout::Node::display() 2022-10-06 16:25:26 +02:00
Progress.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
Progress.h LibWeb: Make Paintable ref-counted 2022-03-11 00:21:49 +01:00
RadioButton.cpp LibWeb: Set 1:1 intrinsic aspect ratio for radio buttons 2022-07-11 18:57:45 +02:00
RadioButton.h LibWeb: Refactor all LabelableNode subclasses + input event handling :^) 2022-03-16 00:38:31 +01:00
ReplacedBox.cpp LibWeb: Remove Layout::Node::set_inline() 2022-10-06 15:29:38 +02:00
ReplacedBox.h LibWeb: Add some fast_is<T> helpers for hot classes on GitHub :^) 2022-03-13 18:09:43 +01: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 SVG <svg> elements behave as CSS replaced elements 2022-03-19 12:42:10 +01:00
SVGFormattingContext.cpp LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
SVGFormattingContext.h LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
SVGGeometryBox.cpp LibWeb: Remove a bunch of no-longer needed #includes 2022-03-11 00:21:49 +01:00
SVGGeometryBox.h LibWeb: Make Paintable ref-counted 2022-03-11 00:21:49 +01:00
SVGGraphicsBox.cpp LibWeb: Let Paintable perform the painting 2022-03-11 00:21:49 +01:00
SVGGraphicsBox.h LibWeb: Let Paintable perform the painting 2022-03-11 00:21:49 +01:00
SVGSVGBox.cpp LibWeb: Try to work out the intrinsic size of <svg> elements 2022-07-11 18:57:45 +02:00
SVGSVGBox.h LibWeb: Try to work out the intrinsic size of <svg> elements 2022-07-11 18:57:45 +02:00
TableBox.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
TableBox.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TableCellBox.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
TableCellBox.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TableFormattingContext.cpp LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
TableFormattingContext.h LibWeb: Reorganize layout algorithms around available space 2022-10-02 21:14:02 +02:00
TableRowBox.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
TableRowBox.h LibWeb: Start work towards modern CSS "display" values 2021-10-06 19:12:52 +02:00
TableRowGroupBox.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
TableRowGroupBox.h LibWeb: Make display: foo box constructors take the Element by pointer 2022-02-25 19:35:34 +01:00
TextNode.cpp LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:"" 2022-10-14 19:50:15 +02:00
TextNode.h LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:"" 2022-10-14 19:50:15 +02:00
TreeBuilder.cpp LibWeb: Mark content: "string" text nodes as generated 2022-10-14 19:50:15 +02:00
TreeBuilder.h LibWeb: Base Layout::TreeBuilder decisions on CSS display property 2022-10-06 15:29:38 +02:00