зеркало из https://github.com/mozilla/gecko-dev.git
Bug 56115. Be sure to determine if CanContinueTextRun() while walking *down* as well as across. r=buster, a=sfraser
This commit is contained in:
Родитель
6e9003c57b
Коммит
20edcce927
|
@ -2992,7 +2992,7 @@ nsLineLayout::FindNextText(nsIPresContext* aPresContext, nsIFrame* aFrame)
|
||||||
PRBool canContinue;
|
PRBool canContinue;
|
||||||
top->CanContinueTextRun(canContinue);
|
top->CanContinueTextRun(canContinue);
|
||||||
if (! canContinue)
|
if (! canContinue)
|
||||||
break;
|
return nsnull;
|
||||||
|
|
||||||
// Advance to top's next sibling
|
// Advance to top's next sibling
|
||||||
nsIFrame* next;
|
nsIFrame* next;
|
||||||
|
@ -3014,8 +3014,13 @@ nsLineLayout::FindNextText(nsIPresContext* aPresContext, nsIFrame* aFrame)
|
||||||
// Save next at the top of the stack...
|
// Save next at the top of the stack...
|
||||||
stack.ReplaceElementAt(next, lastIndex);
|
stack.ReplaceElementAt(next, lastIndex);
|
||||||
|
|
||||||
// ...and prowl down to next's deepest child
|
// ...and prowl down to next's deepest child. We'll need to check
|
||||||
|
// for potential run-busters "on the way down", too.
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
next->CanContinueTextRun(canContinue);
|
||||||
|
if (! canContinue)
|
||||||
|
return nsnull;
|
||||||
|
|
||||||
nsIFrame* child;
|
nsIFrame* child;
|
||||||
next->FirstChild(aPresContext, nsnull, &child);
|
next->FirstChild(aPresContext, nsnull, &child);
|
||||||
|
|
||||||
|
|
|
@ -2992,7 +2992,7 @@ nsLineLayout::FindNextText(nsIPresContext* aPresContext, nsIFrame* aFrame)
|
||||||
PRBool canContinue;
|
PRBool canContinue;
|
||||||
top->CanContinueTextRun(canContinue);
|
top->CanContinueTextRun(canContinue);
|
||||||
if (! canContinue)
|
if (! canContinue)
|
||||||
break;
|
return nsnull;
|
||||||
|
|
||||||
// Advance to top's next sibling
|
// Advance to top's next sibling
|
||||||
nsIFrame* next;
|
nsIFrame* next;
|
||||||
|
@ -3014,8 +3014,13 @@ nsLineLayout::FindNextText(nsIPresContext* aPresContext, nsIFrame* aFrame)
|
||||||
// Save next at the top of the stack...
|
// Save next at the top of the stack...
|
||||||
stack.ReplaceElementAt(next, lastIndex);
|
stack.ReplaceElementAt(next, lastIndex);
|
||||||
|
|
||||||
// ...and prowl down to next's deepest child
|
// ...and prowl down to next's deepest child. We'll need to check
|
||||||
|
// for potential run-busters "on the way down", too.
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
next->CanContinueTextRun(canContinue);
|
||||||
|
if (! canContinue)
|
||||||
|
return nsnull;
|
||||||
|
|
||||||
nsIFrame* child;
|
nsIFrame* child;
|
||||||
next->FirstChild(aPresContext, nsnull, &child);
|
next->FirstChild(aPresContext, nsnull, &child);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче