ladybird/Userland/Libraries/LibWeb/Layout
Aliaksandr Kalenik ca363f0024 LibWeb: Add basic "top layer" support
Implements the "top layer" concept from "CSS Positioned Layout Module
Level 4" specification.

- The tree builder is modified to ensure that layout nodes created by
  top layer elements are children of the viewport.
- Implements missing steps in `showModal()` to add an element top top
  layer.
- Implements missing steps in `close()` to remove an element from top
  layer.

Further steps could be:
- Add support for `::backdrop` pseudo-element.
- Implement the "inert" concept from HTML spec to block hit-testing
  when element from top layer is displayed.
2024-03-29 06:57:07 +01: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: Port AvailableSpace from DeprecatedString to String 2023-11-28 17:15:27 -05:00
AvailableSpace.h LibWeb: Port AvailableSpace from DeprecatedString to String 2023-11-28 17:15:27 -05:00
BlockContainer.cpp LibWeb: Allocate CSS::ComputedValues objects on the heap 2024-01-27 12:27:44 +01:00
BlockContainer.h LibWeb: Allocate CSS::ComputedValues objects on the heap 2024-01-27 12:27:44 +01:00
BlockFormattingContext.cpp LibWeb: Compute height early when possible for floating boxes 2024-03-27 16:43:04 +01:00
BlockFormattingContext.h LibWeb: Account for absolutely positioned table wrappers 2024-03-07 08:09:04 +01:00
Box.cpp LibWeb: Avoid division by zero when calculating box aspect ratio 2024-03-23 20:56:26 +01:00
Box.h LibWeb: Allocate CSS::ComputedValues objects on the heap 2024-01-27 12:27:44 +01: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: Don't generate ::before/::after for BR elements 2023-09-14 21:46:28 +02:00
ButtonBox.cpp LibGfx+LibWeb: Produce font cascade list in CSS font matching algorithm 2023-12-10 17:32:04 +01:00
ButtonBox.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
CanvasBox.cpp LibWeb: Introduce RecordingPainter to serialize painting commands 2023-10-18 10:58:42 +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: Don't make flex layout responsible for flex container cross size 2024-03-27 16:43:04 +01:00
FlexFormattingContext.h LibWeb: Don't make flex layout responsible for flex container cross size 2024-03-27 16:43:04 +01:00
FormAssociatedLabelableNode.h LibWeb: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00
FormattingContext.cpp LibWeb: Don't use stretch-fit width for inline boxes with aspect ratio 2024-03-27 16:43:04 +01:00
FormattingContext.h LibWeb: Account for absolutely positioned table wrappers 2024-03-07 08:09:04 +01:00
FrameBox.cpp LibWeb: Stop assuming navigable's existance in FrameBox 2024-01-20 20:34:30 +00:00
FrameBox.h LibWeb: Fix iframes flickering on window resize 2023-05-15 14:08:08 +02:00
GridFormattingContext.cpp LibWeb: Use resolve_grid_position for abspos boxes layout in GFC 2024-03-11 15:20:58 +01:00
GridFormattingContext.h LibWeb: Add record_grid_placement() helper in GFC 2024-03-07 08:26:37 +01:00
ImageBox.cpp LibWeb: Visit ImageProvider from Layout::ImageBox 2024-02-27 16:53:13 +01:00
ImageBox.h LibWeb: Visit ImageProvider from Layout::ImageBox 2024-02-27 16:53:13 +01:00
ImageProvider.cpp LibWeb: Generalize ImageBox and ImagePaintable for any ImageProvider 2024-02-19 11:07:30 +01:00
ImageProvider.h LibWeb: Visit ImageProvider from Layout::ImageBox 2024-02-27 16:53:13 +01:00
InlineFormattingContext.cpp LibWeb: Avoid unnecessary Vector copying when generating line boxes 2024-03-25 12:39:23 +01:00
InlineFormattingContext.h LibWeb: Use cached UsedValues pointer in IFC and its helper classes 2024-03-16 14:27:59 +01:00
InlineLevelIterator.cpp LibWeb: Use cached UsedValues pointer in IFC and its helper classes 2024-03-16 14:27:59 +01:00
InlineLevelIterator.h LibWeb: Use cached UsedValues pointer in IFC and its helper classes 2024-03-16 14:27:59 +01: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: Look for labeled control in DOM tree instead of layout tree 2024-03-23 12:46:37 +01:00
Label.h LibWeb: Look for labeled control in DOM tree instead of layout tree 2024-03-23 12:46:37 +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: Make the layout tree GC-allocated 2022-10-20 15:16:23 +02:00
LayoutState.cpp LibWeb: Retain size definiteness when transferred through aspect ratio 2024-03-27 16:43:04 +01:00
LayoutState.h LibWeb: Use the parent container's y offset when finding static position 2024-03-10 18:10:01 +01:00
LineBox.cpp LibWeb: Avoid unnecessary Vector copying when generating line boxes 2024-03-25 12:39:23 +01:00
LineBox.h LibWeb: Avoid unnecessary Vector copying when generating line boxes 2024-03-25 12:39:23 +01:00
LineBoxFragment.cpp LibWeb: Use separate structure to represent fragments in paintable tree 2024-01-13 10:53:38 +01:00
LineBoxFragment.h LibWeb: Remove unused LineBoxFragment member 2024-03-18 13:42:16 +01:00
LineBuilder.cpp LibWeb: Avoid unnecessary Vector copying when generating line boxes 2024-03-25 12:39:23 +01:00
LineBuilder.h LibWeb: Avoid unnecessary Vector copying when generating line boxes 2024-03-25 12:39:23 +01: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 Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
ListItemMarkerBox.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Node.cpp LibWeb: Setup computed values for SVG geometry properties 2024-03-04 10:50:32 +01:00
Node.h LibWeb: Move selection state from layout tree to paint tree 2024-03-18 13:42:16 +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: Special case SVG masks during layout 2024-03-12 08:51:50 +01:00
SVGFormattingContext.h LibWeb: Add initial support for nesting SVG viewports 2024-01-27 18:12:13 +01:00
SVGGeometryBox.cpp LibWeb: Support transforms, stroking, gradients, etc for SVG <text> 2023-11-05 02:46:46 +01:00
SVGGeometryBox.h LibWeb: Store computed SVG path data/transforms in LayoutState 2023-10-30 19:44:54 +01: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
SVGMaskBox.cpp LibWeb: Special case SVG masks during layout 2024-03-12 08:51:50 +01:00
SVGMaskBox.h LibWeb: Special case SVG masks during layout 2024-03-12 08:51:50 +01:00
SVGSVGBox.cpp LibWeb: Avoid duplicating SVG viewbox height calculation 2024-03-20 09:09:35 +01:00
SVGSVGBox.h LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
SVGTextBox.cpp LibWeb: Support transforms, stroking, gradients, etc for SVG <text> 2023-11-05 02:46:46 +01:00
SVGTextBox.h LibWeb: Layout SVG <text> elements during layout (not while painting) 2023-10-30 19:44:54 +01:00
SVGTextPathBox.cpp LibWeb: Add initial support for SVG <textPath> 2023-12-19 21:29:03 +01:00
SVGTextPathBox.h LibWeb: Add initial support for SVG <textPath> 2023-12-19 21:29:03 +01:00
TableFormattingContext.cpp LibWeb: Skip cells layout in table box width calculation 2024-03-19 11:51:49 +01:00
TableFormattingContext.h LibWeb: Skip cells layout in table box width calculation 2024-03-19 11:51:49 +01:00
TableGrid.cpp LibWeb: Consider colgroups while calculating table grid size 2023-11-04 17:37:38 +01:00
TableGrid.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
TableWrapper.cpp LibWeb: Allocate CSS::ComputedValues objects on the heap 2024-01-27 12:27:44 +01:00
TableWrapper.h LibWeb: Allocate CSS::ComputedValues objects on the heap 2024-01-27 12:27:44 +01:00
TextNode.cpp LibWeb: Store "text for rendering" in TextPaintable 2024-03-18 13:42:16 +01:00
TextNode.h LibWeb: Port Layout::TextNode from DeprecatedString 2023-11-28 17:15:27 -05:00
TreeBuilder.cpp LibWeb: Add basic "top layer" support 2024-03-29 06:57:07 +01:00
TreeBuilder.h LibWeb: Add basic "top layer" support 2024-03-29 06:57:07 +01:00
VideoBox.cpp LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
VideoBox.h LibWeb: Move viewport subscriptions from BrowsingContext to Document 2023-08-23 20:14:20 +02:00
Viewport.cpp LibWeb: Move selection state from layout tree to paint tree 2024-03-18 13:42:16 +01:00
Viewport.h LibWeb: Move selection state from layout tree to paint tree 2024-03-18 13:42:16 +01:00