зеркало из https://github.com/mozilla/pjs.git
trigger fixed layout if the width cahnges from auto to fixed, bug 426629r/sr=dbaron
This commit is contained in:
Родитель
23999b15f9
Коммит
c095f87dba
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W#C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title> fixed layout not triggered by changing width from auto to coordinate</title>
|
||||
<script type="text/javascript">
|
||||
function doTest(){
|
||||
t1 = document.getElementById('target1');
|
||||
t1.style.width="20px";
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="doTest();">
|
||||
<table border style="table-layout:fixed; width:400px" id="target1">
|
||||
<tr><td>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W#C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title> fixed layout not triggered by changing width from auto to coordinate</title>
|
||||
<script type="text/javascript">
|
||||
function doTest(){
|
||||
t1 = document.getElementById('target2');
|
||||
t1.style.width="20px";
|
||||
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="doTest();">
|
||||
<table border style="table-layout:fixed;" id="target2">
|
||||
<tr><td>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
|
@ -871,6 +871,7 @@ fails-if(MOZ_WIDGET_TOOLKIT=="gtk2") == 424074-1-ref2.xul 424074-1-ref3.xul
|
|||
== 425972-1.html 425972-1-ref.html
|
||||
== 425972-2.html 425972-2-ref.html
|
||||
!= 425972-1.html 425972-2.html
|
||||
== 426629-1.html 426629-1-ref.html
|
||||
!= 427017-1.xhtml about:blank # crash test (needs reftest-print)
|
||||
== 427129-scrollframe.html 427129-ref.html
|
||||
== 427129-table.html 427129-ref.html
|
||||
|
|
|
@ -2226,6 +2226,27 @@ nsTableFrame::GetCollapsedWidth(nsMargin aBorderPadding)
|
|||
return width;
|
||||
}
|
||||
|
||||
/* virtual */ void
|
||||
nsTableFrame::DidSetStyleContext()
|
||||
{
|
||||
//avoid this on init or nextinflow
|
||||
if (!mTableLayoutStrategy || GetPrevInFlow())
|
||||
return;
|
||||
|
||||
PRBool isAuto = IsAutoLayout();
|
||||
if (isAuto != (LayoutStrategy()->GetType() == nsITableLayoutStrategy::Auto)) {
|
||||
nsITableLayoutStrategy* temp;
|
||||
if (isAuto)
|
||||
temp = new BasicTableLayoutStrategy(this);
|
||||
else
|
||||
temp = new FixedTableLayoutStrategy(this);
|
||||
|
||||
if (temp) {
|
||||
delete mTableLayoutStrategy;
|
||||
mTableLayoutStrategy = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -196,6 +196,9 @@ public:
|
|||
|
||||
/** @see nsIFrame::Destroy */
|
||||
virtual void Destroy();
|
||||
|
||||
/** @see nsIFrame::DidSetStyleContext */
|
||||
virtual void DidSetStyleContext();
|
||||
|
||||
NS_IMETHOD AppendFrames(nsIAtom* aListName,
|
||||
nsIFrame* aFrameList);
|
||||
|
|
Загрузка…
Ссылка в новой задаче