ladybird/Userland/Libraries/LibWeb/Layout
Aliaksandr Kalenik 5285e22f2a LibWeb+WebContent: Move scrollbar painting into WebContent
The main intention of this change is to have a consistent look and
behavior across all scrollbars, including elements with
`overflow: scroll` and `overflow: auto`, iframes, and a page.

Before:
- Page's scrollbar is painted by Browser (Qt/AppKit) using the
  corresponding UI framework style,
- Both WebContent and Browser know the scroll position offset.
- WebContent uses did_request_scroll_to() IPC call to send updates.
- Browser uses set_viewport_rect() to send updates.

After:
- Page's scrollbar is painted on WebContent side using the same style as
  currently used for elements with `overflow: scroll` and
  `overflow: auto`. A nice side effects: scrollbars are now painted for
  iframes, and page's scrollbar respects scrollbar-width CSS property.
- Only WebContent knows scroll position offset.
- did_request_scroll_to() is no longer used.
- set_viewport_rect() is changed to set_viewport_size().
2024-06-05 07:03:42 +02:00
..
AudioBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
AudioBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +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: Use IterationDecision in single level Node iteration methods 2024-05-07 16:45:28 -06:00
BlockFormattingContext.h Userland: Add ESCAPING annotations to a bunch of places 2024-05-22 21:55:34 -06: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: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
BreakNode.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
ButtonBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
ButtonBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
CanvasBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
CanvasBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
CheckBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
CheckBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
FlexFormattingContext.cpp LibWeb: Use IterationDecision in single level Node iteration methods 2024-05-07 16:45:28 -06: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: Use TraversalDecision for multi level Node traversal methods 2024-05-07 16:45:28 -06:00
FormattingContext.h LibWeb: Fix some GCVerifier warnings 2024-04-07 07:03:13 +02:00
FrameBox.cpp LibWeb+WebContent: Move scrollbar painting into WebContent 2024-06-05 07:03:42 +02:00
FrameBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
GridFormattingContext.cpp LibWeb: Use IterationDecision in single level Node iteration methods 2024-05-07 16:45:28 -06:00
GridFormattingContext.h LibWeb: Add record_grid_placement() helper in GFC 2024-03-07 08:26:37 +01:00
ImageBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
ImageBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02: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: Don't limit available space during early height for inline-flex 2024-04-13 14:10:10 +02:00
InlineFormattingContext.h LibWeb: Use cached UsedValues pointer in IFC and its helper classes 2024-03-16 14:27:59 +01:00
InlineLevelIterator.cpp LibGfx: Remove Bitmap::glyph_spacing() 2024-06-04 18:45:30 +02: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: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
InlineNode.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
Label.cpp LibWeb: Add Web::UIEvents::MouseButton enum, drop dependency on LibGUI 2024-06-02 20:24:42 +02:00
Label.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02: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: Use TraversalDecision for multi level Node traversal methods 2024-05-07 16:45:28 -06:00
LayoutState.h LibWeb: Fix some GCVerifier warnings 2024-04-07 07:03:13 +02: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: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
ListItemBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
ListItemMarkerBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
ListItemMarkerBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
Node.cpp LibWeb: Resolve basic-shape clip-paths 2024-05-26 07:55:50 +02:00
Node.h LibGfx+LibWeb: Allow inexact size lookups when requesting scaled fonts 2024-05-06 23:26:42 +00:00
RadioButton.cpp LibWeb: Add Web::UIEvents::MouseButton enum, drop dependency on LibGUI 2024-06-02 20:24:42 +02:00
RadioButton.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02: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
SVGClipBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGClipBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGForeignObjectBox.cpp LibWeb: Add layout node and paintable for SVGForeignObjectElement 2024-04-27 07:10:20 +02:00
SVGForeignObjectBox.h LibWeb: Add layout node and paintable for SVGForeignObjectElement 2024-04-27 07:10:20 +02:00
SVGFormattingContext.cpp LibWeb: Use IterationDecision in single level Node iteration methods 2024-05-07 16:45:28 -06:00
SVGFormattingContext.h LibWeb: Split SVGFormattingContext up into functions 2024-04-08 14:24:35 +02:00
SVGGeometryBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGGeometryBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +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
SVGMaskBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGMaskBox.h LibJS+LibWeb: Fix a ton of JS_CELL-like macro issues 2024-05-30 09:29:20 -06:00
SVGSVGBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGSVGBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGTextBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGTextBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGTextPathBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
SVGTextPathBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
TableFormattingContext.cpp LibWeb: Honor intrinsic constraints on available space in table widths 2024-05-01 11:13:48 +02:00
TableFormattingContext.h LibWeb: Fix some GCVerifier warnings 2024-04-07 07:03:13 +02:00
TableGrid.cpp LibWeb: Use TraversalDecision for multi level Node traversal methods 2024-05-07 16:45:28 -06:00
TableGrid.h LibWeb: Use IterationDecision in single level Node iteration methods 2024-05-07 16:45:28 -06:00
TableWrapper.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
TableWrapper.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
TextNode.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
TextNode.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
TreeBuilder.cpp LibWeb: Use TraversalDecision for multi level Node traversal methods 2024-05-07 16:45:28 -06:00
TreeBuilder.h LibWeb: Lay out SVG <clipPath> uses 2024-03-29 21:59:56 +01:00
VideoBox.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
VideoBox.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
Viewport.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
Viewport.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00