1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:28:12 +00:00
serenity/Userland/Libraries/LibWeb/Layout
Andreas Kling 27d4ac316f LibWeb: Introduce simple scrollable overflow, size ICB to viewport
Per spec, the initial containing block (ICB) should have the size of the
viewport. We have only done this for the width until now, since we had
no way to express scrollable overflow.

This patch adds Layout::Box::m_overflow_data, an optional struct that
can hold on to information about a box's overflow. Then we have BFC
set the ICB up with some scrollable overflow instead of sizing it to fit
its content vertically.

This fixes a number of broken layouts where correctness depends on
having the appropriate ICB height.
2021-10-14 23:22:59 +02:00
..
BlockContainer.cpp LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
BlockContainer.h LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
BlockFormattingContext.cpp LibWeb: Introduce simple scrollable overflow, size ICB to viewport 2021-10-14 23:22:59 +02:00
BlockFormattingContext.h LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
Box.cpp LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
Box.h LibWeb: Introduce simple scrollable overflow, size ICB to viewport 2021-10-14 23:22:59 +02:00
BoxModelMetrics.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BoxModelMetrics.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
BreakNode.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
BreakNode.h LibWeb: Let <br> elements have style 2021-09-24 15:01:49 +02:00
ButtonBox.cpp LibWeb: Make intrinsic width/height/ratio a Box concept and simplify it 2021-10-14 18:39:27 +02:00
ButtonBox.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CanvasBox.cpp LibWeb: Make intrinsic width/height/ratio a Box concept and simplify it 2021-10-14 18:39:27 +02:00
CanvasBox.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CheckBox.cpp LibWeb: Make intrinsic width/height/ratio a Box concept and simplify it 2021-10-14 18:39:27 +02:00
CheckBox.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FlexFormattingContext.cpp LibWeb: Use Box::has_intrinsic_aspect_ratio() check in FFC step 3 2021-10-14 19:42:09 +02:00
FlexFormattingContext.h LibWeb: Add spec comments to FFC layout algorithm step 5 2021-10-13 23:56:26 +02:00
FormattingContext.cpp LibWeb: Rename "intrinsic ratio" => "intrinsic aspect ratio" 2021-10-14 18:48:49 +02:00
FormattingContext.h LibWeb: Implement "out-of-flow" property of Layout Box 2021-09-15 13:55:25 +02:00
FrameBox.cpp LibWeb: Make intrinsic width/height/ratio a Box concept and simplify it 2021-10-14 18:39:27 +02:00
FrameBox.h AK: Rename downcast<T> => verify_cast<T> 2021-06-24 19:57:01 +02:00
ImageBox.cpp LibWeb: Rename "intrinsic ratio" => "intrinsic aspect ratio" 2021-10-14 18:48:49 +02:00
ImageBox.h LibWeb: Rename frame_did_set_viewport_rect() => browsing_context_*() 2021-09-08 11:12:22 +02:00
InitialContainingBlock.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
InitialContainingBlock.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
InlineFormattingContext.cpp LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
InlineFormattingContext.h LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
InlineNode.cpp LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
InlineNode.h LibWeb: Give InlineNodes a background 2021-09-19 22:53:35 +02:00
Label.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
Label.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
LabelableNode.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LayoutPosition.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LayoutPosition.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LineBox.cpp LibWeb: Consider empty fragments the same as whitespace in LineBox 2021-10-11 09:51:58 +02:00
LineBox.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
LineBoxFragment.cpp LibWeb: Rename InitialContainingBlockBox => InitialContainingBlock 2021-09-08 11:27:46 +02:00
LineBoxFragment.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ListItemBox.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
ListItemBox.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
ListItemMarkerBox.cpp LibWeb: Make ListItemMarkerBox inherit style from ListItemBox 2021-09-24 15:01:49 +02:00
ListItemMarkerBox.h LibWeb: Mark Layout::ListItemMarkerBox as never having children 2021-10-06 21:49:09 +02:00
Node.cpp LibWeb: CSS display:position does not imply definite size 2021-10-13 23:56:26 +02:00
Node.h LibWeb: Rename Layout::Node::is_block_box() => is_block_container() 2021-10-06 20:10:36 +02:00
RadioButton.cpp LibWeb: Make intrinsic width/height/ratio a Box concept and simplify it 2021-10-14 18:39:27 +02:00
RadioButton.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ReplacedBox.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
ReplacedBox.h LibWeb: Make ReplacedBox intrinsic size setters take Optional<float> 2021-10-14 23:22:59 +02:00
SVGBox.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
SVGBox.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
SVGFormattingContext.cpp LibWeb: Implement very naive layout of <path> within <svg> 2021-09-18 01:39:59 +02:00
SVGFormattingContext.h LibWeb: Add SVGFormattingContext to handle SVG box trees 2021-09-18 01:39:59 +02:00
SVGGraphicsBox.cpp AK: Rename downcast<T> => verify_cast<T> 2021-06-24 19:57:01 +02:00
SVGGraphicsBox.h LibWeb: Add SVGFormattingContext to handle SVG box trees 2021-09-18 01:39:59 +02:00
SVGPathBox.cpp LibWeb: Remove bogus offset when painting an SVG <path> box 2021-09-18 01:39:59 +02:00
SVGPathBox.h LibWeb: Add SVGFormattingContext to handle SVG box trees 2021-09-18 01:39:59 +02:00
SVGSVGBox.cpp LibWeb: Add SVGFormattingContext to handle SVG box trees 2021-09-18 01:39:59 +02:00
SVGSVGBox.h LibWeb: Add SVGFormattingContext to handle SVG box trees 2021-09-18 01:39:59 +02:00
TableBox.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TableBox.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TableCellBox.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TableCellBox.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TableFormattingContext.cpp LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
TableFormattingContext.h LibWeb: Move line boxes from Layout::Box to BlockContainer 2021-10-06 21:53:25 +02:00
TableRowBox.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TableRowBox.h LibWeb: Start work towards modern CSS "display" values 2021-10-06 19:12:52 +02:00
TableRowGroupBox.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TableRowGroupBox.h LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TextNode.cpp Libraries: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
TextNode.h LibWeb: Make Layout::Node::paint() pure virtual 2021-09-15 15:25:47 +02:00
TreeBuilder.cpp LibWeb: Rename Layout::BlockBox => BlockContainer 2021-10-06 20:10:36 +02:00
TreeBuilder.h LibWeb: Start work towards modern CSS "display" values 2021-10-06 19:12:52 +02:00