Reviewed by Darin.
authorharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Mar 2005 21:54:45 +0000 (21:54 +0000)
committerharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Mar 2005 21:54:45 +0000 (21:54 +0000)
        <rdar://problem/4032346> REGRESSION (Mail): changing 1st line of a URL that wraps to two lines doesn't always update 2nd line

        * khtml/rendering/bidi.cpp:
        (khtml::RenderBlock::matchedEndLine):
        Look at first clean line in case line wrap implicitly dirtied it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8848 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/rendering/bidi.cpp

index 58602de531d052f65766c2a54b9129073fc4de1c..7145090051492df0d2044c19086409e903d92a01 100644 (file)
@@ -1,3 +1,13 @@
+2005-03-10  David Harrison  <harrison@apple.com>
+
+        Reviewed by Darin.
+
+        <rdar://problem/4032346> REGRESSION (Mail): changing 1st line of a URL that wraps to two lines doesn't always update 2nd line
+
+        * khtml/rendering/bidi.cpp:
+        (khtml::RenderBlock::matchedEndLine):
+        Look at first clean line in case line wrap implicitly dirtied it.
+
 2005-03-10  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Vicki.
index 921af1209e27bac9c9c00925dc30fe8b78dd29e7..7430421c2548da200d273f765866f9b558468dbd 100644 (file)
@@ -1721,9 +1721,12 @@ RootInlineBox* RenderBlock::determineEndPosition(RootInlineBox* startLine, BidiI
 bool RenderBlock::matchedEndLine(const BidiIterator& start, const BidiIterator& endLineStart, 
                                  RootInlineBox*& endLine, int& endYPos)
 {
-    if (start == endLineStart)
-        return true; // The common case. All the data we already have is correct.
-    else {
+    if (start == endLineStart) {
+        // Need to return false in case the first "clean" line is indirectly dirty from
+        // line wrap changes (i.e. could need to shift this line left or right in
+        // response to changes on the previous line).
+        return false; 
+    } else {
         // The first clean line doesn't match, but we can check a handful of following lines to try
         // to match back up.
         static int numLines = 8; // The # of lines we're willing to match against.