зеркало из https://github.com/mozilla/pjs.git
Fix a few more issues with eSyleUnit_Chars in computed style. Bug 391221,
r+sr+a=dbaron
This commit is contained in:
Родитель
8b7b9ca2cb
Коммит
ba756c27b9
|
@ -3010,7 +3010,7 @@ nsComputedDOMStyle::SetValueToCoord(nsROCSSPrimitiveValue* aValue,
|
|||
if (cx) {
|
||||
nscoord val =
|
||||
nsLayoutUtils::CharsToCoord(aCoord, cx, mStyleContextHolder);
|
||||
aValue->SetAppUnits(PR_MAX(aMinAppUnits, val));
|
||||
aValue->SetAppUnits(PR_MAX(aMinAppUnits, PR_MIN(val, aMaxAppUnits)));
|
||||
} else {
|
||||
// Oh, well. Give up.
|
||||
aValue->SetAppUnits(0);
|
||||
|
@ -3037,6 +3037,21 @@ nsComputedDOMStyle::StyleCoordToNSCoord(const nsStyleCoord& aCoord,
|
|||
switch (aCoord.GetUnit()) {
|
||||
case eStyleUnit_Coord:
|
||||
return aCoord.GetCoordValue();
|
||||
case eStyleUnit_Chars:
|
||||
{
|
||||
// Get a rendering context
|
||||
nsCOMPtr<nsIRenderingContext> cx;
|
||||
nsIFrame* frame = mPresShell->FrameManager()->GetRootFrame();
|
||||
if (frame) {
|
||||
mPresShell->CreateRenderingContext(frame, getter_AddRefs(cx));
|
||||
}
|
||||
if (!cx) {
|
||||
// Return the default value, I guess
|
||||
break;
|
||||
}
|
||||
|
||||
return nsLayoutUtils::CharsToCoord(aCoord, cx, mStyleContextHolder);
|
||||
}
|
||||
case eStyleUnit_Percent:
|
||||
{
|
||||
nscoord percentageBase;
|
||||
|
|
|
@ -80,6 +80,7 @@ _TEST_FILES = test_bug74880.html \
|
|||
test_bug383075.html \
|
||||
test_bug387615.html \
|
||||
test_bug389464.html \
|
||||
test_bug391221.html \
|
||||
test_compute_data_with_start_struct.html \
|
||||
test_dont_use_document_colors.html \
|
||||
test_inherit_storage.html \
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=391221
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 391221</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=391221">Mozilla Bug 391221</a>
|
||||
<p id="display">
|
||||
<div id="width-ref" style="width: 2ch"></div>
|
||||
</p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
<div id="one" style="width: 1000px; max-width: 2ch"></div>
|
||||
<div id="two" style="width: 0px; min-width: 2ch"></div>
|
||||
<div id="three" style="width: 1000ch; max-width: 2px"></div>
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
/** Test for Bug 391221 **/
|
||||
function getComp(id) {
|
||||
return document.defaultView.getComputedStyle($(id), "");
|
||||
}
|
||||
|
||||
is(getComp("one").width, getComp("width-ref").width,
|
||||
"max-width in ch units not working?");
|
||||
|
||||
is(getComp("two").width, getComp("width-ref").width,
|
||||
"min-width in ch units not working?");
|
||||
|
||||
is(getComp("three").width, "2px", "max-width not applied to width in chars?");
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
Загрузка…
Ссылка в новой задаче