ladybird/Userland/Libraries/LibWeb/Layout
Andreas Kling bab6796099 LibWeb: Rewrite calculation of available space between floats
This code now works in terms of *intrusion* by left and right side
floats into a given box whose insides we're trying to layout.

Previously, it worked in terms of space occupied by floats in the root
box of the BFC they participated in. That created a bunch of edge cases
since the code asking about the information wasn't operating in root
coordinate space, but in the coordinate space of some arbitrarily nested
block descendant of the root.

This finally allows horizontal margins in the containing block chain to
affect floats and nested content correctly, and it also allows us to
remove a bogus workaround in InlineFormattingContext.
2023-05-16 14:35:10 +02:00
..
AvailableSpace.cpp
AvailableSpace.h LibWeb: Add default equality operators to Available{Space,Size} 2023-03-27 23:28:07 +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: Rewrite calculation of available space between floats 2023-05-16 14:35:10 +02:00
BlockFormattingContext.h LibWeb: Rewrite calculation of available space between floats 2023-05-16 14:35:10 +02:00
Box.cpp LibWeb/Layout: Rename Box::{paint => paintable}_box() 2023-04-20 20:43:30 +02:00
Box.h LibWeb: Fix iframes flickering on window resize 2023-05-15 14:08:08 +02:00
BoxModelMetrics.cpp
BoxModelMetrics.h
BreakNode.cpp
BreakNode.h
ButtonBox.cpp
ButtonBox.h
CanvasBox.cpp
CanvasBox.h
CheckBox.cpp
CheckBox.h
FlexFormattingContext.cpp LibWeb: Fix percentage min/max sizes on flex items with intrinsic ratio 2023-05-10 18:46:04 +02:00
FlexFormattingContext.h LibWeb: Adjust flex item main size through aspect ratio if needed 2023-05-10 13:03:05 +02:00
FormAssociatedLabelableNode.h
FormattingContext.cpp LibWeb: Fix for absolutely positioned elements with specified height 2023-05-16 14:34:53 +02:00
FormattingContext.h LibWeb: Show formatting context roots in layout tree dumps 2023-05-03 13:14:36 +02:00
FrameBox.cpp LibWeb: Fix iframes flickering on window resize 2023-05-15 14:08:08 +02:00
FrameBox.h LibWeb: Fix iframes flickering on window resize 2023-05-15 14:08:08 +02:00
GridFormattingContext.cpp LibWeb: Skip frozen tracks while distributing space in GFC 2023-05-16 07:47:47 +02:00
GridFormattingContext.h LibWeb: Do not layout grid items during grid container intrinsic sizing 2023-05-15 16:27:53 +02:00
ImageBox.cpp LibWeb: Don't force HTMLImageElement to have a legacy ImageLoader 2023-05-13 09:08:42 +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: Don't force HTMLImageElement to have a legacy ImageLoader 2023-05-13 09:08:42 +02:00
InlineFormattingContext.cpp LibWeb: Rewrite calculation of available space between floats 2023-05-16 14:35:10 +02:00
InlineFormattingContext.h
InlineLevelIterator.cpp LibWeb: Use the new to_px() helpers in CSS, SVG and layout code 2023-05-06 18:41:34 +02:00
InlineLevelIterator.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
InlineNode.cpp
InlineNode.h
Label.cpp LibWeb/Layout: Rename BlockContainer::paint{_box => able_with_lines}() 2023-04-20 20:43:30 +02:00
Label.h
LabelableNode.cpp
LabelableNode.h
LayoutState.cpp LibWeb: Get rid of weird Length::resolved() usage in LayoutState 2023-05-06 21:14:38 +02:00
LayoutState.h LibWeb: Remove vestigial resolve_definite_width/height helper functions 2023-05-02 11:47:13 +02:00
LineBox.cpp
LineBox.h LibWeb: Don't drop single <br/> lines 2023-03-16 08:40:29 +00:00
LineBoxFragment.cpp LibWeb/Layout: Rename Box::{paint => paintable}_box() 2023-04-20 20:43:30 +02:00
LineBoxFragment.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
LineBuilder.cpp LibWeb: Rewrite calculation of available space between floats 2023-05-16 14:35:10 +02:00
LineBuilder.h LibWeb: Basic support for CSS text-indent: <length-percentage> 2023-05-15 19:31:09 +02:00
ListItemBox.cpp
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
ListItemMarkerBox.h
Node.cpp LibWeb: Basic support for CSS text-indent: <length-percentage> 2023-05-15 19:31:09 +02:00
Node.h LibWeb: Verify that a node has styled properties in its styled accessors 2023-04-27 18:28:43 +02:00
Progress.cpp
Progress.h
RadioButton.cpp
RadioButton.h
ReplacedBox.cpp
ReplacedBox.h
SVGBox.cpp
SVGBox.h
SVGFormattingContext.cpp LibWeb: Remove general SVGFormattingContext FIXME 2023-05-04 16:50:01 +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/DOM: Rename Node::{paint => paintable}_box() 2023-04-20 20:43:30 +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: Use the new to_px() helpers in CSS, SVG and layout code 2023-05-06 18:41:34 +02:00
SVGSVGBox.h LibWeb: Add fast_is<T>() for various types stood out in a profile 2023-03-11 10:46:26 +01:00
TableBox.cpp
TableBox.h
TableCellBox.cpp
TableCellBox.h
TableFormattingContext.cpp LibWeb: Use the new to_px() helpers in CSS, SVG and layout code 2023-05-06 18:41:34 +02:00
TableFormattingContext.h LibWeb: Implement "distribute height to rows" step in TFC 2023-04-29 06:46:45 +02:00
TableRowBox.cpp
TableRowBox.h
TableRowGroupBox.cpp
TableRowGroupBox.h
TableWrapper.cpp
TableWrapper.h
TextNode.cpp
TextNode.h
TreeBuilder.cpp LibWeb: Don't include CSS/StyleComputer.h from Element.h and Document.h 2023-05-08 09:29:44 +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: Create a basic layout node for HTMLVideoElement 2023-04-07 16:02:22 +02:00
VideoBox.h LibWeb: Create a basic layout node for HTMLVideoElement 2023-04-07 16:02:22 +02:00
Viewport.cpp LibWeb+WebContent: Make document background and Viewport transparent 2023-04-25 09:33:35 +02:00
Viewport.h