diff --git a/mozilla/layout/generic/nsTextFrame.cpp b/mozilla/layout/generic/nsTextFrame.cpp index 6bac036f664..11bf79b8eb1 100644 --- a/mozilla/layout/generic/nsTextFrame.cpp +++ b/mozilla/layout/generic/nsTextFrame.cpp @@ -468,8 +468,6 @@ public: virtual void AdjustOffsetsForBidi(PRInt32 start, PRInt32 end); - NS_IMETHOD DidSetStyleContext(nsPresContext* aPresContext); - NS_IMETHOD GetPointFromOffset(nsPresContext* inPresContext, nsIRenderingContext* inRendContext, PRInt32 inOffset, @@ -1276,11 +1274,11 @@ DrawSelectionIterator::IsBeforeOrAfter() #define TEXT_BLINK_ON 0x80000000 -#define TEXT_IS_EMPTY 0x00100000 +#define TEXT_IS_ONLY_WHITESPACE 0x00100000 -#define TEXT_ISNOT_EMPTY 0x00200000 +#define TEXT_ISNOT_ONLY_WHITESPACE 0x00200000 -#define TEXT_ISEMPTY_FLAGS 0x00300000 +#define TEXT_WHITESPACE_FLAGS 0x00300000 //---------------------------------------------------------------------- @@ -1397,7 +1395,7 @@ nsTextFrame::CharacterDataChanged(nsPresContext* aPresContext, if (aAppend) { markAllDirty = PR_FALSE; nsTextFrame* frame = (nsTextFrame*)GetLastInFlow(); - frame->mState &= ~TEXT_ISEMPTY_FLAGS; + frame->mState &= ~TEXT_WHITESPACE_FLAGS; frame->mState |= NS_FRAME_IS_DIRTY; targetTextFrame = frame; } @@ -1406,7 +1404,7 @@ nsTextFrame::CharacterDataChanged(nsPresContext* aPresContext, // Mark this frame and all the next-in-flow frames as dirty nsTextFrame* textFrame = this; while (textFrame) { - textFrame->mState &= ~TEXT_ISEMPTY_FLAGS; + textFrame->mState &= ~TEXT_WHITESPACE_FLAGS; textFrame->mState |= NS_FRAME_IS_DIRTY; #ifdef IBMBIDI void* nextBidiFrame; @@ -5836,23 +5834,23 @@ nsTextFrame::GetType() const /* virtual */ PRBool nsTextFrame::IsEmpty() { - NS_ASSERTION(!(mState & TEXT_IS_EMPTY) || !(mState & TEXT_ISNOT_EMPTY), + NS_ASSERTION(!(mState & TEXT_IS_ONLY_WHITESPACE) || + !(mState & TEXT_ISNOT_ONLY_WHITESPACE), "Invalid state"); - if (mState & TEXT_ISNOT_EMPTY) { - return PR_FALSE; - } - - if (mState & TEXT_IS_EMPTY) { - return PR_TRUE; - } - // XXXldb Should this check compatibility mode as well??? if (GetStyleText()->WhiteSpaceIsSignificant()) { - mState |= TEXT_ISNOT_EMPTY; return PR_FALSE; } + if (mState & TEXT_ISNOT_ONLY_WHITESPACE) { + return PR_FALSE; + } + + if (mState & TEXT_IS_ONLY_WHITESPACE) { + return PR_TRUE; + } + nsCOMPtr textContent( do_QueryInterface(mContent) ); if (! textContent) { NS_NOTREACHED("text frame has no text content"); @@ -5860,18 +5858,10 @@ nsTextFrame::IsEmpty() } PRBool isEmpty = textContent->IsOnlyWhitespace(); - mState |= (isEmpty ? TEXT_IS_EMPTY : TEXT_ISNOT_EMPTY); + mState |= (isEmpty ? TEXT_IS_ONLY_WHITESPACE : TEXT_ISNOT_ONLY_WHITESPACE); return isEmpty; } -NS_IMETHODIMP -nsTextFrame::DidSetStyleContext(nsPresContext* aPresContext) { - // Clear out our cached IsEmpty() state, since that depends on style - mState &= ~TEXT_ISEMPTY_FLAGS; - - return nsFrame::DidSetStyleContext(aPresContext); -} - #ifdef DEBUG NS_IMETHODIMP nsTextFrame::GetFrameName(nsAString& aResult) const diff --git a/mozilla/layout/html/base/src/nsTextFrame.cpp b/mozilla/layout/html/base/src/nsTextFrame.cpp index 6bac036f664..11bf79b8eb1 100644 --- a/mozilla/layout/html/base/src/nsTextFrame.cpp +++ b/mozilla/layout/html/base/src/nsTextFrame.cpp @@ -468,8 +468,6 @@ public: virtual void AdjustOffsetsForBidi(PRInt32 start, PRInt32 end); - NS_IMETHOD DidSetStyleContext(nsPresContext* aPresContext); - NS_IMETHOD GetPointFromOffset(nsPresContext* inPresContext, nsIRenderingContext* inRendContext, PRInt32 inOffset, @@ -1276,11 +1274,11 @@ DrawSelectionIterator::IsBeforeOrAfter() #define TEXT_BLINK_ON 0x80000000 -#define TEXT_IS_EMPTY 0x00100000 +#define TEXT_IS_ONLY_WHITESPACE 0x00100000 -#define TEXT_ISNOT_EMPTY 0x00200000 +#define TEXT_ISNOT_ONLY_WHITESPACE 0x00200000 -#define TEXT_ISEMPTY_FLAGS 0x00300000 +#define TEXT_WHITESPACE_FLAGS 0x00300000 //---------------------------------------------------------------------- @@ -1397,7 +1395,7 @@ nsTextFrame::CharacterDataChanged(nsPresContext* aPresContext, if (aAppend) { markAllDirty = PR_FALSE; nsTextFrame* frame = (nsTextFrame*)GetLastInFlow(); - frame->mState &= ~TEXT_ISEMPTY_FLAGS; + frame->mState &= ~TEXT_WHITESPACE_FLAGS; frame->mState |= NS_FRAME_IS_DIRTY; targetTextFrame = frame; } @@ -1406,7 +1404,7 @@ nsTextFrame::CharacterDataChanged(nsPresContext* aPresContext, // Mark this frame and all the next-in-flow frames as dirty nsTextFrame* textFrame = this; while (textFrame) { - textFrame->mState &= ~TEXT_ISEMPTY_FLAGS; + textFrame->mState &= ~TEXT_WHITESPACE_FLAGS; textFrame->mState |= NS_FRAME_IS_DIRTY; #ifdef IBMBIDI void* nextBidiFrame; @@ -5836,23 +5834,23 @@ nsTextFrame::GetType() const /* virtual */ PRBool nsTextFrame::IsEmpty() { - NS_ASSERTION(!(mState & TEXT_IS_EMPTY) || !(mState & TEXT_ISNOT_EMPTY), + NS_ASSERTION(!(mState & TEXT_IS_ONLY_WHITESPACE) || + !(mState & TEXT_ISNOT_ONLY_WHITESPACE), "Invalid state"); - if (mState & TEXT_ISNOT_EMPTY) { - return PR_FALSE; - } - - if (mState & TEXT_IS_EMPTY) { - return PR_TRUE; - } - // XXXldb Should this check compatibility mode as well??? if (GetStyleText()->WhiteSpaceIsSignificant()) { - mState |= TEXT_ISNOT_EMPTY; return PR_FALSE; } + if (mState & TEXT_ISNOT_ONLY_WHITESPACE) { + return PR_FALSE; + } + + if (mState & TEXT_IS_ONLY_WHITESPACE) { + return PR_TRUE; + } + nsCOMPtr textContent( do_QueryInterface(mContent) ); if (! textContent) { NS_NOTREACHED("text frame has no text content"); @@ -5860,18 +5858,10 @@ nsTextFrame::IsEmpty() } PRBool isEmpty = textContent->IsOnlyWhitespace(); - mState |= (isEmpty ? TEXT_IS_EMPTY : TEXT_ISNOT_EMPTY); + mState |= (isEmpty ? TEXT_IS_ONLY_WHITESPACE : TEXT_ISNOT_ONLY_WHITESPACE); return isEmpty; } -NS_IMETHODIMP -nsTextFrame::DidSetStyleContext(nsPresContext* aPresContext) { - // Clear out our cached IsEmpty() state, since that depends on style - mState &= ~TEXT_ISEMPTY_FLAGS; - - return nsFrame::DidSetStyleContext(aPresContext); -} - #ifdef DEBUG NS_IMETHODIMP nsTextFrame::GetFrameName(nsAString& aResult) const