Bug 1877943 - Remove GetFirstLineBaseline function from grid r=dshin

Differential Revision: https://phabricator.services.mozilla.com/D200277
This commit is contained in:
Tiaan Louw 2024-02-05 09:28:30 +00:00
Родитель 47ace73999
Коммит bcbf7287d2
2 изменённых файлов: 11 добавлений и 12 удалений

Просмотреть файл

@ -9776,12 +9776,7 @@ nscoord nsGridContainerFrame::SynthesizeBaseline(
// No item in this fragment - synthesize a baseline from our border-box.
return ::SynthesizeBaselineFromBorderBox(aGroup, aCBWM, aAxis, aCBSize);
}
auto GetBBaseline = [](BaselineSharingGroup aGroup, WritingMode aWM,
const nsIFrame* aFrame, nscoord* aBaseline) {
return aGroup == BaselineSharingGroup::First
? nsLayoutUtils::GetFirstLineBaseline(aWM, aFrame, aBaseline)
: nsLayoutUtils::GetLastLineBaseline(aWM, aFrame, aBaseline);
};
nsIFrame* child = aGridOrderItem.mItem->mFrame;
nsGridContainerFrame* grid = do_QueryFrame(child);
auto childWM = child->GetWritingMode();
@ -9790,6 +9785,7 @@ nscoord nsGridContainerFrame::SynthesizeBaseline(
nscoord baseline;
nscoord start;
nscoord size;
if (aAxis == eLogicalAxisBlock) {
start = child->GetLogicalNormalPosition(aCBWM, aCBPhysicalSize).B(aCBWM);
size = child->BSize(aCBWM);
@ -9823,11 +9819,14 @@ nscoord nsGridContainerFrame::SynthesizeBaseline(
if (grid && aGridOrderItem.mIsInEdgeTrack) {
baseline = isOrthogonal ? grid->GetBBaseline(aGroup)
: grid->GetIBaseline(aGroup);
} else if (isOrthogonal && aGridOrderItem.mIsInEdgeTrack &&
GetBBaseline(aGroup, childWM, child, &baseline)) {
if (aGroup == BaselineSharingGroup::Last) {
baseline = size - baseline; // convert to distance from border-box end
}
} else if (isOrthogonal && aGridOrderItem.mIsInEdgeTrack) {
baseline = child
->GetNaturalBaselineBOffset(childWM, aGroup,
BaselineExportContext::Other)
.valueOrFrom([aGroup, childWM, childAxis, size]() {
return ::SynthesizeBaselineFromBorderBox(
aGroup, childWM, childAxis, size);
});
} else {
baseline =
::SynthesizeBaselineFromBorderBox(aGroup, childWM, childAxis, size);

Просмотреть файл

@ -411,7 +411,7 @@ class nsGridContainerFrame final : public nsContainerFrame,
/**
* Synthesize a Grid container baseline for aGroup.
*/
nscoord SynthesizeBaseline(const FindItemInGridOrderResult& aItem,
nscoord SynthesizeBaseline(const FindItemInGridOrderResult& aGridOrderItem,
LogicalAxis aAxis, BaselineSharingGroup aGroup,
const nsSize& aCBPhysicalSize, nscoord aCBSize,
WritingMode aCBWM);