зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1679931 Part 2 - Recompute float children's overflow area after moving them in vertical-rl writing-mode. r=layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D98516
This commit is contained in:
Родитель
49aa0d68f1
Коммит
c065c51a1b
|
@ -1502,12 +1502,17 @@ void nsBlockFrame::Reflow(nsPresContext* aPresContext, ReflowOutput& aMetrics,
|
|||
nsSize containerSize = aMetrics.PhysicalSize();
|
||||
nscoord deltaX = containerSize.width - state.ContainerSize().width;
|
||||
if (deltaX != 0) {
|
||||
// We compute our lines and markers' overflow areas later in
|
||||
// ComputeOverflowAreas(), so we don't need to adjust their overflow areas
|
||||
// here.
|
||||
const nsPoint physicalDelta(deltaX, 0);
|
||||
for (auto& line : Lines()) {
|
||||
UpdateLineContainerSize(&line, containerSize);
|
||||
}
|
||||
fcBounds.Clear();
|
||||
for (nsIFrame* f : mFloats) {
|
||||
f->MovePositionBy(physicalDelta);
|
||||
ConsiderChildOverflow(fcBounds, f);
|
||||
}
|
||||
nsFrameList* markerList = GetOutsideMarkerList();
|
||||
if (markerList) {
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ -->
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Overflow Test: Scrollable overflow area of a multicol container in vertical-rl writing-mode</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<meta name="assert" content="This test verifies the float element in a multicol container in vertical-rl writing-mode shouldn't contribute to its container'sscrollable overflow area.">
|
||||
|
||||
<style>
|
||||
.scroll-container {
|
||||
writing-mode: vertical-rl;
|
||||
inline-size: 100px;
|
||||
block-size: 100px;
|
||||
overflow: auto;
|
||||
}
|
||||
.multicol {
|
||||
block-size: 100px;
|
||||
inline-size: 100px;
|
||||
column-fill: auto;
|
||||
column-count: 2;
|
||||
column-gap: 0;
|
||||
}
|
||||
.float {
|
||||
float: left;
|
||||
inline-size: 50px;
|
||||
block-size: 100px;
|
||||
background: green;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--This test passes if the scroll-container has no scrollbar. -->
|
||||
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
<div class="scroll-container">
|
||||
<div class="multicol">
|
||||
<div style="block-size: 100px; background: green;"></div>
|
||||
<div class="float"></div>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
Загрузка…
Ссылка в новой задаче