[webkit-changes] [WebKit/WebKit] d0bccb: Clarify Inline Box Traversal Methods
fantasai
noreply at github.com
Mon Jan 20 11:14:21 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d0bccb1198a21b4353be52a27f83e95dbbda45f5
https://github.com/WebKit/WebKit/commit/d0bccb1198a21b4353be52a27f83e95dbbda45f5
Author: Elika Etemad <fantasai.bugs at inkedblade.net>
Date: 2025-01-20 (Mon, 20 Jan 2025)
Changed paths:
M Source/WebCore/dom/Position.cpp
M Source/WebCore/editing/Editing.cpp
M Source/WebCore/editing/RenderedPosition.cpp
M Source/WebCore/editing/VisiblePosition.cpp
M Source/WebCore/editing/VisibleUnits.cpp
M Source/WebCore/html/HTMLTextFormControlElement.cpp
M Source/WebCore/layout/integration/inline/InlineIteratorBox.cpp
M Source/WebCore/layout/integration/inline/InlineIteratorBox.h
M Source/WebCore/layout/integration/inline/InlineIteratorBoxInlines.h
M Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.cpp
M Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.h
M Source/WebCore/layout/integration/inline/InlineIteratorLineBox.cpp
M Source/WebCore/layout/integration/inline/InlineIteratorLineBox.h
M Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.cpp
M Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.h
M Source/WebCore/layout/integration/inline/InlineIteratorTextBox.cpp
M Source/WebCore/layout/integration/inline/InlineIteratorTextBox.h
M Source/WebCore/layout/integration/inline/LineSelection.h
M Source/WebCore/rendering/BackgroundPainter.cpp
M Source/WebCore/rendering/CaretRectComputation.cpp
M Source/WebCore/rendering/InlineBoxPainter.cpp
M Source/WebCore/rendering/RenderBlock.cpp
M Source/WebCore/rendering/RenderBlockFlow.cpp
M Source/WebCore/rendering/RenderBox.cpp
M Source/WebCore/rendering/RenderBoxModelObject.cpp
M Source/WebCore/rendering/RenderElement.cpp
M Source/WebCore/rendering/RenderFileUploadControl.cpp
M Source/WebCore/rendering/RenderImage.cpp
M Source/WebCore/rendering/RenderInline.cpp
M Source/WebCore/rendering/RenderLineBreak.cpp
M Source/WebCore/rendering/RenderText.cpp
M Source/WebCore/rendering/RenderVTTCue.cpp
M Source/WebCore/rendering/TextBoxTrimmer.cpp
M Source/WebCore/rendering/svg/RenderSVGInlineText.cpp
M Source/WebCore/rendering/svg/RenderSVGText.cpp
M Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp
M Source/WebCore/rendering/svg/SVGTextQuery.cpp
M Source/WebCore/style/InlineTextBoxStyle.cpp
Log Message:
-----------
Clarify Inline Box Traversal Methods
https://bugs.webkit.org/show_bug.cgi?id=286207
rdar://problem/143182898
Reviewed by Alan Baradlay.
Our inline box traversal methods go in LTR order, not tree order
or coordinate order. Rename them to clarify this, and add methods
for coordinate order traversal.
This is a cosmetic change, setting us up to switch to coordinate
order traversal or source order traversal methods where needed.
* Source/WebCore/dom/Position.cpp:
(WebCore::hasInlineRun):
(WebCore::Position::inlineBoxAndOffset const):
* Source/WebCore/editing/Editing.cpp:
(WebCore::visualDistanceOnSameLine):
(WebCore::advanceInDirection):
(WebCore::forEachRenderedBoxBetween):
* Source/WebCore/editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):
(WebCore::RenderedPosition::leftBoundaryOfBidiRun const):
(WebCore::RenderedPosition::rightBoundaryOfBidiRun const):
* Source/WebCore/editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
* Source/WebCore/editing/VisibleUnits.cpp:
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
* Source/WebCore/html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
* Source/WebCore/layout/integration/inline/InlineIteratorBox.cpp:
(WebCore::InlineIterator::BoxIterator::traverseLineRightwardOnLine):
(WebCore::InlineIterator::BoxIterator::traverseLineRightwardOnLineSkippingChildren):
(WebCore::InlineIterator::Box::nextLineRightwardOnLine const):
(WebCore::InlineIterator::Box::nextLineLeftwardOnLine const):
(WebCore::InlineIterator::Box::nextLineRightwardOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::Box::nextLineLeftwardOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineRightwardOnLine):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineLeftwardOnLine):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineRightwardOnLineIgnoringLineBreak):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineLeftwardOnLineIgnoringLineBreak):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLine): Deleted.
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineSkippingChildren): Deleted.
(WebCore::InlineIterator::Box::nextOnLine const): Deleted.
(WebCore::InlineIterator::Box::previousOnLine const): Deleted.
(WebCore::InlineIterator::Box::nextOnLineIgnoringLineBreak const): Deleted.
(WebCore::InlineIterator::Box::previousOnLineIgnoringLineBreak const): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLine): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLine): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLineIgnoringLineBreak): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLineIgnoringLineBreak): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorBox.h:
(WebCore::InlineIterator::BoxIterator::operator++):
(WebCore::InlineIterator::LeafBoxIterator::operator++):
* Source/WebCore/layout/integration/inline/InlineIteratorBoxInlines.h:
(WebCore::InlineIterator::Box::nextLogicalRightwardOnLine const):
(WebCore::InlineIterator::Box::nextLogicalLeftwardOnLine const):
(WebCore::InlineIterator::Box::nextLogicalRightwardOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::Box::nextLogicalLeftwardOnLineIgnoringLineBreak const):
* Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.cpp:
(WebCore::InlineIterator::InlineBox::closedEdges const):
(WebCore::InlineIterator::InlineBox::nextInlineBoxLineRightward const):
(WebCore::InlineIterator::InlineBox::nextInlineBoxLineLeftward const):
(WebCore::InlineIterator::InlineBox::endLeafBox const):
(WebCore::InlineIterator::InlineBox::descendants const):
(WebCore::InlineIterator::InlineBoxIterator::traverseInlineBoxLineRightward):
(WebCore::InlineIterator::InlineBoxIterator::traverseInlineBoxLineLeftward):
(WebCore::InlineIterator::lineLeftmostInlineBoxFor):
(WebCore::InlineIterator::InlineBox::nextInlineBox const): Deleted.
(WebCore::InlineIterator::InlineBox::previousInlineBox const): Deleted.
(WebCore::InlineIterator::InlineBoxIterator::traverseNextInlineBox): Deleted.
(WebCore::InlineIterator::InlineBoxIterator::traversePreviousInlineBox): Deleted.
(WebCore::InlineIterator::firstInlineBoxFor): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.h:
* Source/WebCore/layout/integration/inline/InlineIteratorLineBox.cpp:
(WebCore::InlineIterator::LineBox::lineLeftmostLeafBox const):
(WebCore::InlineIterator::LineBox::lineRightmostLeafBox const):
(WebCore::InlineIterator::closestBoxForHorizontalPosition):
(WebCore::InlineIterator::LineBox::ellipsisSelectionState const):
(WebCore::InlineIterator::LineBox::firstLeafBox const): Deleted.
(WebCore::InlineIterator::LineBox::lastLeafBox const): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorLineBox.h:
* Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.cpp:
(WebCore::InlineIterator::firstTextBoxInLogicalOrderFor):
* Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.h:
(WebCore::InlineIterator::leafBoxesInLogicalOrder):
* Source/WebCore/layout/integration/inline/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::lineLeftmostTextBoxFor):
(WebCore::InlineIterator::textBoxesFor):
(WebCore::InlineIterator::firstTextBoxFor): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorTextBox.h:
* Source/WebCore/layout/integration/inline/LineSelection.h:
(WebCore::LineSelection::selectionState):
* Source/WebCore/rendering/BackgroundPainter.cpp:
(WebCore::BackgroundPainter::boxShadowShouldBeAppliedToBackground):
* Source/WebCore/rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForInline):
* Source/WebCore/rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
(WebCore::InlineBoxPainter::paintBoxShadow):
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeLineAdjustmentForPagination):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::containsNonZeroBidiLevel const):
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren const):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::positionWithRTLInlineBoxContainingBlock):
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::getLeadingCorner const):
* Source/WebCore/rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintControl):
* Source/WebCore/rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
* Source/WebCore/rendering/RenderInline.cpp:
(WebCore::RenderInline::innerPaddingBoxWidth const):
(WebCore::RenderInline::linesBoundingBox const):
(WebCore::RenderInline::offsetForInFlowPositionedInline const):
(WebCore::RenderInline::paintOutline const):
* Source/WebCore/rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionGeometries):
(WebCore::lineDirectionPointFitsInBox):
(WebCore::createVisiblePositionAfterAdjustingOffsetForBiDi):
(WebCore::RenderText::positionForPoint):
(WebCore::RenderText::firstRunLocation const):
(WebCore::RenderText::linesBoundingBox const):
(WebCore::RenderText::caretMinOffset const):
(WebCore::RenderText::caretMaxOffset const):
* Source/WebCore/rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::initializeLayoutParameters):
(WebCore::RenderVTTCue::repositionCueSnapToLinesSet):
(WebCore::RenderVTTCue::repositionGenericCue):
* Source/WebCore/rendering/TextBoxTrimmer.cpp:
(WebCore::shouldIgnoreAsFirstLastFormattedLineContainer):
* Source/WebCore/rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::positionForPoint):
* Source/WebCore/rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::layoutCharactersInTextBoxes):
(WebCore::RenderSVGText::paintInlineChildren):
* Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
* Source/WebCore/rendering/svg/SVGTextQuery.cpp:
(WebCore::inlineBoxForRenderer):
(WebCore::SVGTextQuery::collectTextBoxesInInlineBox):
* Source/WebCore/style/InlineTextBoxStyle.cpp:
(WebCore::minLogicalTopForTextDecorationLineUnder):
(WebCore::maxLogicalBottomForTextDecorationLineUnder):
Canonical link: https://commits.webkit.org/289159@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list