bug 35099 - create form frame when inside table related element. a=leaf

This commit is contained in:
karnaze%netscape.com 2000-04-10 04:00:37 +00:00
Родитель f5b3d2926d
Коммит 4e31ba4a93
2 изменённых файлов: 14 добавлений и 6 удалений

Просмотреть файл

@ -2846,13 +2846,17 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
aContent->GetTag(*getter_AddRefs(tag));
if (nsHTMLAtoms::form == tag.get()) {
// forms don't cause psuedo frames to be generated, but
// A form doesn't get a psuedo frame parent, but it needs a frame.
// if the parent is a table, put the form in the outer table frame
// otherwise use aParentFrameIn as the parent
nsCOMPtr<nsIAtom> frameType;
aParentFrameIn->GetFrameType(getter_AddRefs(frameType));
if (nsLayoutAtoms::tableFrame == frameType.get()) {
aParentFrameIn->GetParent(&parentFrame);
}
else {
parentFrame = aParentFrameIn;
}
}
// Do not construct pseudo frames for trees
else if (!aTableCreator.IsTreeCreator() &&
@ -2870,7 +2874,7 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
if (!parentFrame) return rv; // if pseudo frame wasn't created
// save the pseudo frame state
// save the pseudo frame state XXX - why
nsPseudoFrames prevPseudoFrames;
aState.mPseudoFrames.Reset(&prevPseudoFrames);
@ -2878,7 +2882,7 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
rv = ConstructFrame(aPresShell, aPresContext, aState, aContent, parentFrame, items);
aNewFrame = items.childList;
// restore the pseudo frame state
// restore the pseudo frame state XXX - why
aState.mPseudoFrames = prevPseudoFrames;
if (aIsPseudoParent) {

Просмотреть файл

@ -2846,13 +2846,17 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
aContent->GetTag(*getter_AddRefs(tag));
if (nsHTMLAtoms::form == tag.get()) {
// forms don't cause psuedo frames to be generated, but
// A form doesn't get a psuedo frame parent, but it needs a frame.
// if the parent is a table, put the form in the outer table frame
// otherwise use aParentFrameIn as the parent
nsCOMPtr<nsIAtom> frameType;
aParentFrameIn->GetFrameType(getter_AddRefs(frameType));
if (nsLayoutAtoms::tableFrame == frameType.get()) {
aParentFrameIn->GetParent(&parentFrame);
}
else {
parentFrame = aParentFrameIn;
}
}
// Do not construct pseudo frames for trees
else if (!aTableCreator.IsTreeCreator() &&
@ -2870,7 +2874,7 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
if (!parentFrame) return rv; // if pseudo frame wasn't created
// save the pseudo frame state
// save the pseudo frame state XXX - why
nsPseudoFrames prevPseudoFrames;
aState.mPseudoFrames.Reset(&prevPseudoFrames);
@ -2878,7 +2882,7 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
rv = ConstructFrame(aPresShell, aPresContext, aState, aContent, parentFrame, items);
aNewFrame = items.childList;
// restore the pseudo frame state
// restore the pseudo frame state XXX - why
aState.mPseudoFrames = prevPseudoFrames;
if (aIsPseudoParent) {