mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1067268: don't mix physical and logical coordinates when calculating width to clear past floats, r=jfkthame
This commit is contained in:
parent
3313462374
commit
84a46f035b
@ -992,6 +992,7 @@ nsBlockReflowState::ClearFloats(nscoord aBCoord, uint8_t aBreakType,
|
|||||||
}
|
}
|
||||||
|
|
||||||
nscoord newBCoord = aBCoord;
|
nscoord newBCoord = aBCoord;
|
||||||
|
WritingMode wm = mReflowState.GetWritingMode();
|
||||||
|
|
||||||
if (aBreakType != NS_STYLE_CLEAR_NONE) {
|
if (aBreakType != NS_STYLE_CLEAR_NONE) {
|
||||||
newBCoord = mFloatManager->ClearFloats(newBCoord, aBreakType, aFlags);
|
newBCoord = mFloatManager->ClearFloats(newBCoord, aBreakType, aFlags);
|
||||||
@ -1009,12 +1010,14 @@ nsBlockReflowState::ClearFloats(nscoord aBCoord, uint8_t aBreakType,
|
|||||||
nsBlockFrame::ReplacedElementWidthToClear replacedWidth =
|
nsBlockFrame::ReplacedElementWidthToClear replacedWidth =
|
||||||
nsBlockFrame::WidthToClearPastFloats(*this, floatAvailableSpace.mRect,
|
nsBlockFrame::WidthToClearPastFloats(*this, floatAvailableSpace.mRect,
|
||||||
aReplacedBlock);
|
aReplacedBlock);
|
||||||
if (std::max(floatAvailableSpace.mRect.x - ContentIStart(),
|
if (std::max(floatAvailableSpace.mRect.x -
|
||||||
|
mContentArea.X(wm, mContainerWidth),
|
||||||
replacedWidth.marginLeft) +
|
replacedWidth.marginLeft) +
|
||||||
replacedWidth.borderBoxWidth +
|
replacedWidth.borderBoxWidth +
|
||||||
std::max(ContentIEnd() - floatAvailableSpace.mRect.XMost(),
|
std::max(mContentArea.XMost(wm, mContainerWidth) -
|
||||||
|
floatAvailableSpace.mRect.XMost(),
|
||||||
replacedWidth.marginRight) <=
|
replacedWidth.marginRight) <=
|
||||||
ContentISize()) {
|
mContentArea.Width(wm)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// See the analogous code for inlines in nsBlockFrame::DoReflowInlineFrames
|
// See the analogous code for inlines in nsBlockFrame::DoReflowInlineFrames
|
||||||
|
Loading…
Reference in New Issue
Block a user