зеркало из https://github.com/mozilla/pjs.git
pseudo rowgroups might be wrapped in a scrollframe, bug 331679 r/sr=bzbarsky
This commit is contained in:
Родитель
2bb5326ad4
Коммит
c3ce06f886
|
@ -2614,6 +2614,23 @@ ProcessPseudoFrame(nsPseudoFrameData& aPseudoData,
|
|||
return rv;
|
||||
}
|
||||
|
||||
static nsresult
|
||||
ProcessPseudoRowGroupFrame(nsPseudoFrameData& aPseudoData,
|
||||
nsIFrame*& aParent)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
aParent = aPseudoData.mFrame;
|
||||
nsTableRowGroupFrame* rgFrame = nsTableFrame::GetRowGroupFrame(aParent);
|
||||
nsFrameItems* items = &aPseudoData.mChildList;
|
||||
if (items && items->childList) {
|
||||
rv = rgFrame->SetInitialChildList(nsnull, items->childList);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
aPseudoData.Reset();
|
||||
return rv;
|
||||
}
|
||||
|
||||
static nsresult
|
||||
ProcessPseudoTableFrame(nsPseudoFrames& aPseudoFrames,
|
||||
nsIFrame*& aParent)
|
||||
|
@ -2692,12 +2709,12 @@ ProcessPseudoFrames(nsFrameConstructorState& aState,
|
|||
if (nsLayoutAtoms::tableRowFrame == aHighestType) return rv;
|
||||
}
|
||||
if (pseudoFrames.mRowGroup.mFrame) {
|
||||
rv = ProcessPseudoFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
rv = ProcessPseudoRowGroupFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
if (nsLayoutAtoms::tableRowGroupFrame == aHighestType) return rv;
|
||||
}
|
||||
}
|
||||
else if (nsLayoutAtoms::tableRowGroupFrame == pseudoFrames.mLowestType) {
|
||||
rv = ProcessPseudoFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
rv = ProcessPseudoRowGroupFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
if (nsLayoutAtoms::tableRowGroupFrame == aHighestType) return rv;
|
||||
if (pseudoFrames.mColGroup.mFrame) {
|
||||
nsIFrame* colGroupHigh;
|
||||
|
@ -2730,7 +2747,7 @@ ProcessPseudoFrames(nsFrameConstructorState& aState,
|
|||
if (nsLayoutAtoms::tableRowFrame == aHighestType) return rv;
|
||||
|
||||
if (pseudoFrames.mRowGroup.mFrame) {
|
||||
rv = ProcessPseudoFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
rv = ProcessPseudoRowGroupFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
if (nsLayoutAtoms::tableRowGroupFrame == aHighestType) return rv;
|
||||
}
|
||||
if (pseudoFrames.mColGroup.mFrame) {
|
||||
|
@ -2765,7 +2782,7 @@ ProcessPseudoFrames(nsFrameConstructorState& aState,
|
|||
if (nsLayoutAtoms::tableRowFrame == aHighestType) return rv;
|
||||
}
|
||||
if (pseudoFrames.mRowGroup.mFrame) {
|
||||
rv = ProcessPseudoFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
rv = ProcessPseudoRowGroupFrame(pseudoFrames.mRowGroup, aHighestFrame);
|
||||
if (nsLayoutAtoms::tableRowGroupFrame == aHighestType) return rv;
|
||||
}
|
||||
if (pseudoFrames.mColGroup.mFrame) {
|
||||
|
@ -3015,8 +3032,10 @@ nsCSSFrameConstructor::CreatePseudoRowFrame(nsTableCreator& aTableCreat
|
|||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsIFrame* parentFrame = (aState.mPseudoFrames.mRowGroup.mFrame)
|
||||
? aState.mPseudoFrames.mRowGroup.mFrame : aParentFrameIn;
|
||||
nsIFrame* parentFrame = aParentFrameIn;
|
||||
if (aState.mPseudoFrames.mRowGroup.mFrame) {
|
||||
parentFrame = (nsIFrame*) nsTableFrame::GetRowGroupFrame(aState.mPseudoFrames.mRowGroup.mFrame);
|
||||
}
|
||||
if (!parentFrame) return rv;
|
||||
|
||||
nsStyleContext *parentStyle;
|
||||
|
|
Загрузка…
Ссылка в новой задаче