зеркало из https://github.com/mozilla/gecko-dev.git
Trim whitespace that comes right before a <br> when trimming whitespace. Bug
132561 relanding, r+sr=dbaron
This commit is contained in:
Родитель
344c13ee1c
Коммит
5c3e8ea185
|
@ -1006,7 +1006,7 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
|
|||
// the float.
|
||||
if (frameType) {
|
||||
if (nsLayoutAtoms::placeholderFrame == frameType) {
|
||||
pfd->SetFlag(PFD_ISPLACEHOLDERFRAME, PR_TRUE);
|
||||
pfd->SetFlag(PFD_SKIPWHENTRIMMINGWHITESPACE, PR_TRUE);
|
||||
nsIFrame* outOfFlowFrame = nsLayoutUtils::GetFloatFromPlaceholder(aFrame);
|
||||
if (outOfFlowFrame) {
|
||||
nsPlaceholderFrame* placeholder = NS_STATIC_CAST(nsPlaceholderFrame*, aFrame);
|
||||
|
@ -1062,6 +1062,9 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
|
|||
else if (nsLayoutAtoms::letterFrame==frameType) {
|
||||
pfd->SetFlag(PFD_ISLETTERFRAME, PR_TRUE);
|
||||
}
|
||||
else if (nsLayoutAtoms::brFrame == frameType) {
|
||||
pfd->SetFlag(PFD_SKIPWHENTRIMMINGWHITESPACE, PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
mSpaceManager->Translate(-tx, -ty);
|
||||
|
@ -2617,7 +2620,7 @@ nsLineLayout::TrimTrailingWhiteSpaceIn(PerSpanData* psd,
|
|||
}
|
||||
}
|
||||
else if (!pfd->GetFlag(PFD_ISTEXTFRAME) &&
|
||||
!pfd->GetFlag(PFD_ISPLACEHOLDERFRAME)) {
|
||||
!pfd->GetFlag(PFD_SKIPWHENTRIMMINGWHITESPACE)) {
|
||||
// If we hit a frame on the end that's not text and not a placeholder,
|
||||
// then there is no trailing whitespace to trim. Stop the search.
|
||||
*aDeltaWidth = 0;
|
||||
|
|
|
@ -397,14 +397,15 @@ protected:
|
|||
#define PFD_ISLETTERFRAME 0x00000010
|
||||
#define PFD_ISSTICKY 0x00000020
|
||||
#define PFD_ISBULLET 0x00000040
|
||||
#define PFD_ISPLACEHOLDERFRAME 0x00000080
|
||||
#define PFD_LASTFLAG PFD_ISPLACEHOLDERFRAME
|
||||
#define PFD_SKIPWHENTRIMMINGWHITESPACE 0x00000080
|
||||
#define PFD_LASTFLAG PFD_SKIPWHENTRIMMINGWHITESPACE
|
||||
|
||||
PRPackedBool mFlags;
|
||||
PRUint8 mFlags;
|
||||
|
||||
void SetFlag(PRUint32 aFlag, PRBool aValue)
|
||||
{
|
||||
NS_ASSERTION(aFlag<=PFD_LASTFLAG, "bad flag");
|
||||
NS_ASSERTION(aFlag<=PR_UINT8_MAX, "bad flag");
|
||||
NS_ASSERTION(aValue==PR_FALSE || aValue==PR_TRUE, "bad value");
|
||||
if (aValue) { // set flag
|
||||
mFlags |= aFlag;
|
||||
|
|
Загрузка…
Ссылка в новой задаче