зеркало из https://github.com/mozilla/gecko-dev.git
Bug 835873 - Include minHeight calculation before vertically centering a button's children. r=bz
This commit is contained in:
Родитель
d806e1e244
Коммит
9a1e760e9a
|
@ -209,22 +209,6 @@ nsHTMLButtonControlFrame::Reflow(nsPresContext* aPresContext,
|
||||||
|
|
||||||
aDesiredSize.width = aReflowState.ComputedWidth();
|
aDesiredSize.width = aReflowState.ComputedWidth();
|
||||||
|
|
||||||
// If computed use the computed value.
|
|
||||||
if (aReflowState.ComputedHeight() != NS_INTRINSICSIZE) {
|
|
||||||
aDesiredSize.height = aReflowState.ComputedHeight();
|
|
||||||
} else {
|
|
||||||
aDesiredSize.height += focusPadding.TopBottom();
|
|
||||||
|
|
||||||
// Make sure we obey min/max-height in the case when we're doing intrinsic
|
|
||||||
// sizing (we get it for free when we have a non-intrinsic
|
|
||||||
// aReflowState.ComputedHeight()). Note that we do this before adjusting
|
|
||||||
// for borderpadding, since mComputedMaxHeight and mComputedMinHeight are
|
|
||||||
// content heights.
|
|
||||||
aDesiredSize.height = NS_CSS_MINMAX(aDesiredSize.height,
|
|
||||||
aReflowState.mComputedMinHeight,
|
|
||||||
aReflowState.mComputedMaxHeight);
|
|
||||||
}
|
|
||||||
|
|
||||||
aDesiredSize.width += aReflowState.mComputedBorderPadding.LeftRight();
|
aDesiredSize.width += aReflowState.mComputedBorderPadding.LeftRight();
|
||||||
aDesiredSize.height += aReflowState.mComputedBorderPadding.TopBottom();
|
aDesiredSize.height += aReflowState.mComputedBorderPadding.TopBottom();
|
||||||
|
|
||||||
|
@ -289,6 +273,22 @@ nsHTMLButtonControlFrame::ReflowButtonContents(nsPresContext* aPresContext,
|
||||||
aReflowState.mComputedBorderPadding.TopBottom();
|
aReflowState.mComputedBorderPadding.TopBottom();
|
||||||
minInternalHeight = std::max(minInternalHeight, 0);
|
minInternalHeight = std::max(minInternalHeight, 0);
|
||||||
|
|
||||||
|
// Compute our desired height before vertically centering our children
|
||||||
|
if (aReflowState.ComputedHeight() != NS_INTRINSICSIZE) {
|
||||||
|
aDesiredSize.height = aReflowState.ComputedHeight();
|
||||||
|
} else {
|
||||||
|
aDesiredSize.height += aFocusPadding.TopBottom();
|
||||||
|
|
||||||
|
// Make sure we obey min/max-height in the case when we're doing intrinsic
|
||||||
|
// sizing (we get it for free when we have a non-intrinsic
|
||||||
|
// aReflowState.ComputedHeight()). Note that we do this before adjusting
|
||||||
|
// for borderpadding, since mComputedMaxHeight and mComputedMinHeight are
|
||||||
|
// content heights.
|
||||||
|
aDesiredSize.height = NS_CSS_MINMAX(aDesiredSize.height,
|
||||||
|
aReflowState.mComputedMinHeight,
|
||||||
|
aReflowState.mComputedMaxHeight);
|
||||||
|
}
|
||||||
|
|
||||||
// center child vertically
|
// center child vertically
|
||||||
nscoord yoff = 0;
|
nscoord yoff = 0;
|
||||||
if (aReflowState.ComputedHeight() != NS_INTRINSICSIZE) {
|
if (aReflowState.ComputedHeight() != NS_INTRINSICSIZE) {
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<style>
|
||||||
|
.btn1, .btn2 {
|
||||||
|
border: 5px solid green;
|
||||||
|
background-color: blue;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<input type='submit' class='btn1' value='' />
|
||||||
|
<input type='submit' class='btn2' value='' />
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<style>
|
||||||
|
.btn1, .btn2 {
|
||||||
|
border: 5px solid green;
|
||||||
|
background-color: blue;
|
||||||
|
}
|
||||||
|
.btn1 {
|
||||||
|
min-height: 50px;
|
||||||
|
}
|
||||||
|
.btn2 {
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<input type='submit' class='btn1' value='' />
|
||||||
|
<input type='submit' class='btn2' value='' />
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,3 +1,4 @@
|
||||||
asserts(2) == first-letter-1.html first-letter-1-ref.html
|
asserts(2) == first-letter-1.html first-letter-1-ref.html
|
||||||
asserts(1) != first-letter-1.html first-letter-1-noref.html
|
asserts(1) != first-letter-1.html first-letter-1-noref.html
|
||||||
== max-height.html max-height-ref.html
|
== max-height.html max-height-ref.html
|
||||||
|
== min-height.html min-height-ref.html
|
||||||
|
|
Загрузка…
Ссылка в новой задаче