зеркало из 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();
|
nsSize containerSize = aMetrics.PhysicalSize();
|
||||||
nscoord deltaX = containerSize.width - state.ContainerSize().width;
|
nscoord deltaX = containerSize.width - state.ContainerSize().width;
|
||||||
if (deltaX != 0) {
|
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);
|
const nsPoint physicalDelta(deltaX, 0);
|
||||||
for (auto& line : Lines()) {
|
for (auto& line : Lines()) {
|
||||||
UpdateLineContainerSize(&line, containerSize);
|
UpdateLineContainerSize(&line, containerSize);
|
||||||
}
|
}
|
||||||
|
fcBounds.Clear();
|
||||||
for (nsIFrame* f : mFloats) {
|
for (nsIFrame* f : mFloats) {
|
||||||
f->MovePositionBy(physicalDelta);
|
f->MovePositionBy(physicalDelta);
|
||||||
|
ConsiderChildOverflow(fcBounds, f);
|
||||||
}
|
}
|
||||||
nsFrameList* markerList = GetOutsideMarkerList();
|
nsFrameList* markerList = GetOutsideMarkerList();
|
||||||
if (markerList) {
|
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>
|
Загрузка…
Ссылка в новой задаче