ladybird/Libraries/LibWeb/Layout
Timothy Flynn 0e4fb9ae73 LibWeb: Ensure up/down arrow navigation is grapheme-aware
Previously, it was possible for an up/down arrow press to place the
cursor in the middle of a multi-code point grapheme cluster. We want to
prevent this in a way that matches the behavior of other browsers.

Both Chrome and Firefox will map the starting position to a visually
equivalent position in the target line with harfbuzz and ICU segmenters.
The need for this is explained in a code comment. The result is a much
more natural feeling of text navigation.
2025-08-18 13:17:28 +02:00
..
AudioBox.cpp LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
AudioBox.h LibWeb: Hide audio element when controls is not set 2025-01-04 11:47:09 +00:00
AvailableSpace.cpp
AvailableSpace.h
BlockContainer.cpp LibWeb: Verify type before casting PaintableBox to PaintableWithLines 2025-07-13 03:01:59 +02:00
BlockContainer.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
BlockFormattingContext.cpp LibWeb: Set fit-content width for buttons in used values, not computed 2025-08-18 11:04:34 +01:00
BlockFormattingContext.h LibWeb: Avoid floats for BFC/FFC/GFCs with a definite width 2025-08-01 14:26:12 +02:00
Box.cpp LibWeb: Move containment checks to Layout::Node 2025-05-13 15:30:14 +03:00
Box.h LibWeb: Move containment checks to Layout::Node 2025-05-13 15:30:14 +03:00
BreakNode.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
BreakNode.h AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
CanvasBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
CanvasBox.h LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
CheckBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
CheckBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
FieldSetBox.cpp Meta: Disallow links to single-page HTML spec 2025-02-05 16:04:50 -07:00
FieldSetBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
FlexFormattingContext.cpp LibWeb: Remove unused includes from FlexFormattingContext 2025-07-28 12:13:06 +02:00
FlexFormattingContext.h LibWeb: Avoid computing automatic minimum size for some flex items 2025-04-22 15:46:10 +02:00
FormAssociatedLabelableNode.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
FormattingContext.cpp LibWeb: Set fit-content width for buttons in used values, not computed 2025-08-18 11:04:34 +01:00
FormattingContext.h LibWeb: Honor "should treat as auto" cases in aspect-ratio decisions 2025-08-05 21:33:41 +02:00
GridFormattingContext.cpp LibWeb: Fix abspos layout when box is contained by grid area 2025-08-17 17:58:16 +02:00
GridFormattingContext.h LibWeb: Skip serialization of implicit grid lines created during layout 2025-06-25 20:45:48 +02:00
ImageBox.cpp LibWeb: Allow ImageProvider subclasses to visit additional GC edges 2025-07-28 22:46:27 +02:00
ImageBox.h LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
ImageProvider.cpp
ImageProvider.h LibWeb: Allow ImageProvider subclasses to visit additional GC edges 2025-07-28 22:46:27 +02:00
InlineFormattingContext.cpp LibWeb: Handle text-overflow: ellipsis with trailing whitespace 2025-08-18 11:00:26 +01:00
InlineFormattingContext.h
InlineLevelIterator.cpp LibWeb: Support percentages in word-spacing 2025-08-05 11:43:55 +01:00
InlineLevelIterator.h LibWeb: Remove unused include from InlineLevelIterator 2025-06-17 17:03:33 +02:00
InlineNode.cpp LibWeb: Support inserting non-inline elements into inline elements 2025-01-23 09:33:10 +01:00
InlineNode.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
Label.cpp AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
Label.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
LabelableNode.cpp
LabelableNode.h LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
LayoutState.cpp LibWeb: Don't let aspect-ratio influence size definiteness 2025-08-05 21:33:41 +02:00
LayoutState.h LibWeb: Support CSS content property images (and lists, too!) 2025-07-28 22:46:27 +02:00
LegendBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
LegendBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
LineBox.cpp LibWeb: Port rendered text to UTF-16 2025-07-25 18:16:22 +02:00
LineBox.h LibWeb: Make fragment start/length size_t instead of int 2025-06-13 15:08:26 +02:00
LineBoxFragment.cpp LibWeb: Port rendered text to UTF-16 2025-07-25 18:16:22 +02:00
LineBoxFragment.h LibWeb: Port rendered text to UTF-16 2025-07-25 18:16:22 +02:00
LineBuilder.cpp LibWeb: Prioritize inheriting text-align for <th> 2025-07-15 10:05:48 +02:00
LineBuilder.h LibWeb: Let LineBuilder decide on Y-coordinate for float insertion 2025-04-01 16:02:53 +02:00
ListItemBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
ListItemBox.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
ListItemMarkerBox.cpp AK+LibWeb/CSS: Add lower-greek counter style 2025-07-21 15:18:17 +01:00
ListItemMarkerBox.h LibWeb: Improve graphical list item marker positioning 2025-07-17 09:35:09 +01:00
NavigableContainerViewport.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
NavigableContainerViewport.h LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
Node.cpp LibWeb: Implement the color-interpolation property for SVG gradients 2025-08-17 10:51:05 +02:00
Node.h LibWeb: Rename PaintContext to DisplayListRecordingContext 2025-08-01 05:25:56 -04:00
RadioButton.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
RadioButton.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
ReplacedBox.cpp LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
ReplacedBox.h LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
SVGBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGBox.h AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
SVGClipBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGClipBox.h AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
SVGForeignObjectBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGForeignObjectBox.h LibWeb: Make SVG foreignObject establish a new stacking context 2025-07-09 14:36:08 +02:00
SVGFormattingContext.cpp LibWeb: Port SVGFormattingContext to UTF-16 2025-08-05 15:13:36 +02:00
SVGFormattingContext.h LibGfx: Delete DeprecatedPath 2024-11-25 21:13:53 +01:00
SVGGeometryBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGGeometryBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGGraphicsBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGGraphicsBox.h LibWeb: Add more fast_is<T> helpers for layout and paintable nodes 2025-04-18 14:45:56 +02:00
SVGImageBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGImageBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGMaskBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGMaskBox.h AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
SVGSVGBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGSVGBox.h LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
SVGTextBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGTextBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGTextPathBox.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
SVGTextPathBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
TableFormattingContext.cpp LibWeb/Layout: Support visibility:collapse on table-row elements 2025-08-11 11:07:47 +01:00
TableFormattingContext.h AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
TableGrid.cpp LibWeb/Layout: Support visibility:collapse on table-row elements 2025-08-11 11:07:47 +01:00
TableGrid.h LibWeb/Layout: Support visibility:collapse on table-row elements 2025-08-11 11:07:47 +01:00
TableWrapper.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
TableWrapper.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
TextNode.cpp LibWeb: Ensure up/down arrow navigation is grapheme-aware 2025-08-18 13:17:28 +02:00
TextNode.h LibWeb: Ensure up/down arrow navigation is grapheme-aware 2025-08-18 13:17:28 +02:00
TreeBuilder.cpp LibWeb: Set fit-content width for buttons in used values, not computed 2025-08-18 11:04:34 +01:00
TreeBuilder.h LibWeb/CSS: Move and rename PseudoElement types to prep for code gen 2025-03-24 09:49:50 +00:00
VideoBox.cpp LibWeb: Allow Layout::ImageBox to be anonymous 2025-07-28 22:46:27 +02:00
VideoBox.h LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
Viewport.cpp LibWeb: Port rendered text to UTF-16 2025-07-25 18:16:22 +02:00
Viewport.h AK+LibJS+LibWeb+LibRegex: Replace AK::Utf16Data with AK::Utf16String 2025-07-18 12:45:38 -04:00