Reviewed by Darin
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Sep 2004 16:42:39 +0000 (16:42 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Sep 2004 16:42:39 +0000 (16:42 +0000)
        Fix for this bug:

        <rdar://problem/3805594> REGRESSION (Mail): Second return key stroke does not work when first was in blockquote

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::toRange): Code to convert caret positions moved the position upstream
        before making a range-compliant position, but erroneously would allow the position
        to cross blocks. Now it will no longer do so.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/editing/SelectionController.cpp
WebCore/khtml/editing/selection.cpp
WebCore/khtml/xml/dom_selection.cpp

index 54b437b5dbcf85cd91650fb2115930068b46d2ca..06d63c5e418d65b0b7aaeab8423c2c7d012476ab 100644 (file)
@@ -1,3 +1,16 @@
+2004-09-17  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Darin
+
+        Fix for this bug:
+        
+        <rdar://problem/3805594> REGRESSION (Mail): Second return key stroke does not work when first was in blockquote
+
+        * khtml/xml/dom_selection.cpp:
+        (DOM::Selection::toRange): Code to convert caret positions moved the position upstream
+        before making a range-compliant position, but erroneously would allow the position
+        to cross blocks. Now it will no longer do so.
+
 2004-09-16  Richard Williamson   <rjw@apple.com>
 
         Part 1 of the feature requested in
@@ -15,6 +28,7 @@
         }
         </style>
 
+
        Part 2 will determine the appropriate regions.
 
         Reviewed by Chris.
index b006d2a53c6b6d8efe465d3c507cef05f52666fa..67a01815d75f09128abfd28fe8e0eac90fdcd4a4 100644 (file)
@@ -461,7 +461,7 @@ Range Selection::toRange() const
         // If the selection is a caret, move the range start upstream. This helps us match
         // the conventions of text editors tested, which make style determinations based
         // on the character before the caret, if any. 
-        s = start().upstream().equivalentRangeCompliantPosition();
+        s = start().upstream(StayInBlock).equivalentRangeCompliantPosition();
         e = s;
     }
     else {
index b006d2a53c6b6d8efe465d3c507cef05f52666fa..67a01815d75f09128abfd28fe8e0eac90fdcd4a4 100644 (file)
@@ -461,7 +461,7 @@ Range Selection::toRange() const
         // If the selection is a caret, move the range start upstream. This helps us match
         // the conventions of text editors tested, which make style determinations based
         // on the character before the caret, if any. 
-        s = start().upstream().equivalentRangeCompliantPosition();
+        s = start().upstream(StayInBlock).equivalentRangeCompliantPosition();
         e = s;
     }
     else {
index b006d2a53c6b6d8efe465d3c507cef05f52666fa..67a01815d75f09128abfd28fe8e0eac90fdcd4a4 100644 (file)
@@ -461,7 +461,7 @@ Range Selection::toRange() const
         // If the selection is a caret, move the range start upstream. This helps us match
         // the conventions of text editors tested, which make style determinations based
         // on the character before the caret, if any. 
-        s = start().upstream().equivalentRangeCompliantPosition();
+        s = start().upstream(StayInBlock).equivalentRangeCompliantPosition();
         e = s;
     }
     else {