Skip to content

Commit

Permalink
Bug 300030: Move intrinsic width computation out of nsIFrame::Reflow …
Browse files Browse the repository at this point in the history
…and into its own methods on nsIFrame. Replace reflow reasons, types, and commands with dirty bits/notifications. Thanks to bzbarsky for almost all of the HTML form controls (mozilla/layout/forms) changes, and many others for help testing and patching. For detailed commit logs, see REFLOW_YYYYMMDD_BRANCH, where YYYYMMDD is one of 20061031, 20060830, 20060603, 20060302, 20060119, 20051011, 20050804, 20050429, 20050315, 20050111, and 20041213.
  • Loading branch information
dbaron%dbaron.org committed Dec 8, 2006
1 parent cd352c3 commit 31f1898
Show file tree
Hide file tree
Showing 201 changed files with 8,660 additions and 18,187 deletions.
1 change: 1 addition & 0 deletions content/base/src/nsGkAtomList.h
Expand Up @@ -1301,6 +1301,7 @@ GK_ATOM(boxFrame, "BoxFrame")
GK_ATOM(brFrame, "BRFrame")
GK_ATOM(bulletFrame, "BulletFrame")
GK_ATOM(columnSetFrame, "ColumnSetFrame")
GK_ATOM(comboboxControlFrame, "ComboboxControlFrame")
GK_ATOM(directionalFrame, "DirectionalFrame")
GK_ATOM(fieldSetFrame, "FieldSetFrame")
GK_ATOM(frameSetFrame, "FrameSetFrame")
Expand Down
4 changes: 2 additions & 2 deletions content/html/content/src/nsGenericHTMLElement.cpp
Expand Up @@ -1179,7 +1179,7 @@ nsGenericHTMLElement::GetClientHeight(PRInt32* aClientHeight)
*aClientHeight = NSTwipsToIntPixels(r.height, t2p);
} else if (frame &&
(frame->GetStyleDisplay()->mDisplay != NS_STYLE_DISPLAY_INLINE ||
(frame->GetStateBits() & NS_FRAME_REPLACED_ELEMENT))) {
(frame->IsFrameOfType(nsIFrame::eReplaced)))) {
// Special case code to make clientHeight work even when there isn't
// a scroll view, see bug 180552 and bug 227567.

Expand Down Expand Up @@ -1207,7 +1207,7 @@ nsGenericHTMLElement::GetClientWidth(PRInt32* aClientWidth)
*aClientWidth = NSTwipsToIntPixels(r.width, t2p);
} else if (frame &&
(frame->GetStyleDisplay()->mDisplay != NS_STYLE_DISPLAY_INLINE ||
(frame->GetStateBits() & NS_FRAME_REPLACED_ELEMENT))) {
(frame->IsFrameOfType(nsIFrame::eReplaced)))) {
// Special case code to make clientWidth work even when there isn't
// a scroll view, see bug 180552 and bug 227567.

Expand Down
7 changes: 4 additions & 3 deletions layout/base/nsBidiPresUtils.cpp
Expand Up @@ -463,10 +463,11 @@ nsBidiPresUtils::Resolve(nsPresContext* aPresContext,
PRBool IsBidiLeaf(nsIFrame* aFrame) {
nsIAtom* frameType = aFrame->GetType();
nsIFrame* kid = aFrame->GetFirstChild(nsnull);
// Need the IsBlockLevel() check because nsFirstLetterFrame is
// always of type eBidiInlineContainer, even if it's floating.
return !kid
|| aFrame->GetStyleDisplay()->IsBlockLevel()
|| !(aFrame->IsFrameOfType(nsIFrame::eBidiInlineContainer)
|| nsLayoutAtoms::blockFrame == frameType);
|| !aFrame->IsFrameOfType(nsIFrame::eBidiInlineContainer)
|| aFrame->GetStyleDisplay()->IsBlockLevel();
}

nsresult
Expand Down

0 comments on commit 31f1898

Please sign in to comment.