Reviewed by Hyatt
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Mar 2005 17:12:49 +0000 (17:12 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Mar 2005 17:12:49 +0000 (17:12 +0000)
        Fix for this bug:

        <rdar://problem/4011358> REGRESSION(Mail): after dragging text to mail message and deleting, typing or dragging new text doesn't work

        * khtml/editing/visible_position.cpp:
        (khtml::VisiblePosition::isCandidate): Insertion point disappearing was due to a failed
        check here after deleting all the content in the body element. The special "empty block"
        needs to add check for DOM children. A block may have straggling anonymous render children in
        some cases, and so the check needs to be (!DOM-kids || !render-kids).

        Also, I botched the last checkin trying to split these two patches in my tree. Wrong layout tests
        got checked in, I checked in a conflict marker in the Changelog, etc. I fixed everything with this checkin.

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

16 files changed:
LayoutTests/editing/deleting/delete-3959464-fix-expected.txt
LayoutTests/editing/inserting/insert-div-001-expected.txt
LayoutTests/editing/inserting/insert-div-002-expected.txt
LayoutTests/editing/inserting/insert-div-004-expected.txt
LayoutTests/editing/inserting/insert-div-005-expected.txt
LayoutTests/editing/inserting/insert-div-009-expected.txt
LayoutTests/editing/inserting/insert-div-014-expected.txt
LayoutTests/editing/inserting/insert-div-018-expected.txt
LayoutTests/editing/inserting/insert-div-024-expected.txt
LayoutTests/editing/pasteboard/paste-text-011-expected.txt
LayoutTests/editing/pasteboard/paste-text-013-expected.txt
LayoutTests/editing/pasteboard/paste-text-015-expected.txt
LayoutTests/editing/style/block-style-004-expected.txt
LayoutTests/editing/style/block-style-005-expected.txt
LayoutTests/editing/style/block-style-006-expected.txt
WebCore/ChangeLog-2005-08-23

index 5574c7c4e0653bc553220a6b5a1455fbde16f4bd..dea5fd1afc48f9573815b81dc77c2a16f76ea7c6 100644 (file)
@@ -21,6 +21,6 @@ layer at (0,0) size 800x600
           RenderBR {BR} at (14,14) size 0x28
         RenderBlock {DIV} at (0,112) size 784x28 [border: (2px solid #FF0000)]
 selection is CARET:
-start:      position 0 of child 4 {DIV} of root {DIV}
-upstream:   position 0 of child 4 {DIV} of root {DIV}
-downstream: position 1 of child 4 {DIV} of root {DIV}
+start:      position 0 of child 3 {DIV} of root {DIV}
+upstream:   position 0 of child 3 {DIV} of root {DIV}
+downstream: position 1 of child 3 {DIV} of root {DIV}
index 4814f3a5b714b2a5ff6a051f915a2fd6fe51ba6e..8856fb6129a542a937114a8fc46a3ec62362d8fb 100644 (file)
@@ -10,6 +10,6 @@ layer at (0,0) size 800x600
         RenderText {TEXT} at (14,14) size 12x28
           text run at (14,14) width 12: "x"
 selection is CARET:
-start:      position 1 of child 1 {TEXT} of child 4 {DIV} of root {BODY}
-upstream:   position 1 of child 1 {TEXT} of child 4 {DIV} of root {BODY}
-downstream: position 1 of child 1 {TEXT} of child 4 {DIV} of root {BODY}
+start:      position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
+upstream:   position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
+downstream: position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
index 4814f3a5b714b2a5ff6a051f915a2fd6fe51ba6e..8856fb6129a542a937114a8fc46a3ec62362d8fb 100644 (file)
@@ -10,6 +10,6 @@ layer at (0,0) size 800x600
         RenderText {TEXT} at (14,14) size 12x28
           text run at (14,14) width 12: "x"
 selection is CARET:
-start:      position 1 of child 1 {TEXT} of child 4 {DIV} of root {BODY}
-upstream:   position 1 of child 1 {TEXT} of child 4 {DIV} of root {BODY}
-downstream: position 1 of child 1 {TEXT} of child 4 {DIV} of root {BODY}
+start:      position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
+upstream:   position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
+downstream: position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
index a2d96b7d9344b022a00b71b54186c38ea1c262ba..0ff796c5f51b6f4b5e4bd21f46a662ef65178575 100644 (file)
@@ -11,6 +11,6 @@ layer at (0,0) size 800x600
       RenderBlock {DIV} at (0,112) size 784x56 [border: (2px solid #FF0000)]
         RenderBR {BR} at (14,14) size 0x28
 selection is CARET:
-start:      position 0 of child 1 {BR} of child 5 {DIV} of root {BODY}
-upstream:   position 0 of child 5 {DIV} of root {BODY}
-downstream: position 0 of child 1 {BR} of child 5 {DIV} of root {BODY}
+start:      position 0 of child 1 {BR} of child 3 {DIV} of root {BODY}
+upstream:   position 0 of child 3 {DIV} of root {BODY}
+downstream: position 0 of child 1 {BR} of child 3 {DIV} of root {BODY}
index c4885880bb73a955b6d875880346fda17bfd4df4..ce9926e46560c0487e73d0e82ddcdab3b0776ff8 100644 (file)
@@ -12,6 +12,6 @@ layer at (0,0) size 800x600
         RenderText {TEXT} at (14,14) size 12x28
           text run at (14,14) width 12: "x"
 selection is CARET:
-start:      position 1 of child 1 {TEXT} of child 5 {DIV} of root {BODY}
-upstream:   position 1 of child 1 {TEXT} of child 5 {DIV} of root {BODY}
-downstream: position 1 of child 1 {TEXT} of child 5 {DIV} of root {BODY}
+start:      position 1 of child 1 {TEXT} of child 3 {DIV} of root {BODY}
+upstream:   position 1 of child 1 {TEXT} of child 3 {DIV} of root {BODY}
+downstream: position 1 of child 1 {TEXT} of child 3 {DIV} of root {BODY}
index 8e44a67b7be4f483a05037b82516fad045cde023..56aefdd03a37b89adf80ac70a6a1838493c40ca5 100644 (file)
@@ -10,6 +10,6 @@ layer at (0,0) size 800x600
         RenderText {TEXT} at (0,0) size 8x18
           text run at (0,0) width 8: "x"
 selection is CARET:
-start:      position 1 of child 1 {TEXT} of child 5 {DIV} of root {BODY}
-upstream:   position 1 of child 1 {TEXT} of child 5 {DIV} of root {BODY}
-downstream: position 1 of child 1 {TEXT} of child 5 {DIV} of root {BODY}
+start:      position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
+upstream:   position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
+downstream: position 1 of child 1 {TEXT} of child 2 {DIV} of root {BODY}
index 0454db7534746b718ab055c7e19c977587e11223..460a4d64b2fc6760c9f57f8919aa71aae62dd4bb 100644 (file)
@@ -13,13 +13,14 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,120) size 784x28
         RenderText {TEXT} at (0,0) size 31x28
           text run at (0,0) width 31: "bar"
-      RenderBlock {DIV} at (0,148) size 784x56 [border: (2px solid #0000FF)]
-        RenderBR {BR} at (14,14) size 0x28
-      RenderBlock {DIV} at (0,204) size 784x56 [border: (2px solid #FF0000)]
-        RenderText {TEXT} at (14,14) size 32x28
-          text run at (14,14) width 32: "foo"
-      RenderBlock {DIV} at (0,260) size 784x56 [border: (2px solid #FF0000)]
-        RenderBR {BR} at (14,14) size 0x28
+      RenderBlock {DIV} at (0,148) size 784x168 [border: (2px solid #0000FF)]
+        RenderBlock (anonymous) at (14,14) size 756x28
+          RenderBR {BR} at (0,0) size 0x28
+        RenderBlock {DIV} at (14,42) size 756x56 [border: (2px solid #FF0000)]
+          RenderText {TEXT} at (14,14) size 32x28
+            text run at (14,14) width 32: "foo"
+        RenderBlock {DIV} at (14,98) size 756x56 [border: (2px solid #FF0000)]
+          RenderBR {BR} at (14,14) size 0x28
 selection is CARET:
 start:      position 0 of child 1 {BR} of child 6 {DIV} of root {BODY}
 upstream:   position 0 of child 6 {DIV} of root {BODY}
index c63be3ecbb31154ff837f56ddc36e38ada601f0f..b64b2d6929df37f253746540f1787a9b35bdf127 100644 (file)
@@ -10,11 +10,12 @@ layer at (0,0) size 800x600
       RenderBlock (anonymous) at (0,64) size 784x28
         RenderText {TEXT} at (0,0) size 31x28
           text run at (0,0) width 31: "bar"
-      RenderBlock {DIV} at (0,92) size 784x56 [border: (2px solid #0000FF)]
-        RenderBR {BR} at (14,14) size 0x28
-      RenderBlock {DIV} at (0,148) size 784x56 [border: (2px solid #FF0000)]
-        RenderText {TEXT} at (14,14) size 34x28
-          text run at (14,14) width 34: "baz"
+      RenderBlock {DIV} at (0,92) size 784x112 [border: (2px solid #0000FF)]
+        RenderBlock (anonymous) at (14,14) size 756x28
+          RenderBR {BR} at (0,0) size 0x28
+        RenderBlock {DIV} at (14,42) size 756x56 [border: (2px solid #FF0000)]
+          RenderText {TEXT} at (14,14) size 34x28
+            text run at (14,14) width 34: "baz"
 selection is CARET:
 start:      position 0 of child 1 {BR} of child 4 {DIV} of root {BODY}
 upstream:   position 0 of child 4 {DIV} of root {BODY}
index 4e7b3858d8154b2a1825897355d6537ba828c79f..60cf41dcd241e5264247d8ef3006223eff8c6344 100644 (file)
@@ -27,6 +27,6 @@ layer at (0,0) size 800x600
         RenderText {TEXT} at (14,14) size 36x28
           text run at (14,14) width 36: "xxx"
 selection is CARET:
-start:      position 3 of child 1 {TEXT} of child 11 {P} of root {BODY}
-upstream:   position 3 of child 1 {TEXT} of child 11 {P} of root {BODY}
-downstream: position 3 of child 1 {TEXT} of child 11 {P} of root {BODY}
+start:      position 3 of child 1 {TEXT} of child 9 {P} of root {BODY}
+upstream:   position 3 of child 1 {TEXT} of child 9 {P} of root {BODY}
+downstream: position 3 of child 1 {TEXT} of child 9 {P} of root {BODY}
index a8180abecce6bc8c5d3d75c7885448986af11a12..5ddbcc4950dc8833a28d738b7815389221873833 100644 (file)
@@ -24,6 +24,6 @@ layer at (0,0) size 800x600
             RenderText {TEXT} at (0,0) size 39x18
               text run at (0,0) width 39: "there"
 selection is CARET:
-start:      position 5 of child 1 {TEXT} of child 1 {B} of child 1 {FONT} of child 7 {P} of root {BODY}
-upstream:   position 5 of child 1 {TEXT} of child 1 {B} of child 1 {FONT} of child 7 {P} of root {BODY}
-downstream: position 5 of child 1 {TEXT} of child 1 {B} of child 1 {FONT} of child 7 {P} of root {BODY}
+start:      position 5 of child 1 {TEXT} of child 1 {B} of child 1 {FONT} of child 5 {P} of root {BODY}
+upstream:   position 5 of child 1 {TEXT} of child 1 {B} of child 1 {FONT} of child 5 {P} of root {BODY}
+downstream: position 5 of child 1 {TEXT} of child 1 {B} of child 1 {FONT} of child 5 {P} of root {BODY}
index f57e6b9027ef24195fc90be8563caf75e2ff8102..97bd3bc6cf2edc105092cd5d710e6d74afc8511a 100644 (file)
@@ -19,15 +19,17 @@ layer at (0,0) size 800x600
           RenderBlock {BLOCKQUOTE} at (40,0) size 676x28
             RenderText {TEXT} at (0,0) size 32x28
               text run at (0,0) width 32: "foo"
-      RenderBlock {DIV} at (0,182) size 784x132 [border: (2px solid #FF0000)]
+      RenderBlock {DIV} at (0,182) size 784x184 [border: (2px solid #FF0000)]
         RenderBlock (anonymous) at (14,14) size 756x28
           RenderText {TEXT} at (0,0) size 12x28
             text run at (0,0) width 12: "x"
-        RenderBlock {DIV} at (14,66) size 756x28
+        RenderBlock {DIV} at (14,66) size 756x80
           RenderBlock {BLOCKQUOTE} at (40,0) size 676x28
             RenderText {TEXT} at (0,0) size 32x28
               text run at (0,0) width 32: "foo"
+          RenderBlock {BLOCKQUOTE} at (40,52) size 676x28
+            RenderBR {BR} at (0,0) size 0x28
 selection is CARET:
-start:      position 1 of child 1 {TEXT} of child 8 {DIV} of root {BODY}
-upstream:   position 1 of child 1 {TEXT} of child 8 {DIV} of root {BODY}
-downstream: position 1 of child 1 {TEXT} of child 8 {DIV} of root {BODY}
+start:      position 0 of child 1 {BR} of child 2 {BLOCKQUOTE} of child 2 {DIV} of child 8 {DIV} of root {BODY}
+upstream:   position 0 of child 2 {BLOCKQUOTE} of child 2 {DIV} of child 8 {DIV} of root {BODY}
+downstream: position 0 of child 1 {BR} of child 2 {BLOCKQUOTE} of child 2 {DIV} of child 8 {DIV} of root {BODY}
index ba5f9709c6bd3dfc951e489bf1dd63d6d07149d9..a6423a0cc62fd3270a21fff9035c303c4ac7abe5 100644 (file)
@@ -3,25 +3,21 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {DIV} at (0,0) size 784x84
-        RenderBlock {DIV} at (0,0) size 784x84 [border: (2px solid #FF0000)]
+      RenderBlock {DIV} at (0,0) size 784x140
+        RenderBlock {DIV} at (0,0) size 784x140 [border: (2px solid #FF0000)]
           RenderBlock {P} at (14,14) size 756x28
             RenderText {TEXT} at (0,0) size 32x28
               text run at (0,0) width 32: "foo"
           RenderBlock {P} at (14,42) size 756x28
             RenderText {TEXT} at (0,0) size 31x28
               text run at (0,0) width 31: "bar"
-      RenderBlock {P} at (0,84) size 784x28
-        RenderInline {FONT} at (0,0) size 32x28
-          RenderInline {SPAN} at (0,0) size 32x28
+          RenderBlock {P} at (14,70) size 756x28
             RenderText {TEXT} at (0,0) size 32x28
               text run at (0,0) width 32: "foo"
-      RenderBlock {P} at (0,112) size 784x28
-        RenderInline {FONT} at (0,0) size 31x28
-          RenderInline {SPAN} at (0,0) size 31x28
+          RenderBlock {P} at (14,98) size 756x28
             RenderText {TEXT} at (0,0) size 31x28
               text run at (0,0) width 31: "bar"
 selection is CARET:
-start:      position 3 of child 1 {TEXT} of child 1 {SPAN} of child 1 {FONT} of child 5 {P} of child 2 {BODY} of child 1 {HTML} of root {}
-upstream:   position 3 of child 1 {TEXT} of child 1 {SPAN} of child 1 {FONT} of child 5 {P} of child 2 {BODY} of child 1 {HTML} of root {}
-downstream: position 3 of child 1 {TEXT} of child 1 {SPAN} of child 1 {FONT} of child 5 {P} of child 2 {BODY} of child 1 {HTML} of root {}
+start:      position 3 of child 1 {TEXT} of child 4 {P} of child 2 {DIV} of root {DIV}
+upstream:   position 3 of child 1 {TEXT} of child 4 {P} of child 2 {DIV} of root {DIV}
+downstream: position 3 of child 1 {TEXT} of child 4 {P} of child 2 {DIV} of root {DIV}
index cfff03f1e337720a1144c76762702952b84e64f1..580ca67bdf22fa0b70ea1ccc2e71cc812f1f9474 100644 (file)
@@ -38,6 +38,6 @@ layer at (0,0) size 800x600
               RenderText {TEXT} at (0,0) size 30x69
                 text run at (0,0) width 30: "x"
 selection is CARET:
-start:      position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 4 {DIV} of root {DIV}
-upstream:   position 0 of child 4 {DIV} of root {DIV}
-downstream: position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 4 {DIV} of root {DIV}
+start:      position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 3 {DIV} of root {DIV}
+upstream:   position 0 of child 3 {DIV} of root {DIV}
+downstream: position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 3 {DIV} of root {DIV}
index dc0b391f502707026949687882a422b8a5b42304..bdd33c3e2d3a9d174cadbd2f0cd1203870abad21 100644 (file)
@@ -35,6 +35,6 @@ layer at (0,0) size 800x600
             RenderInline {SPAN} at (0,0) size 0x69
               RenderBR {BR} at (0,0) size 0x69
 selection is CARET:
-start:      position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 4 {DIV} of root {DIV}
-upstream:   position 0 of child 4 {DIV} of root {DIV}
-downstream: position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 4 {DIV} of root {DIV}
+start:      position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 3 {DIV} of root {DIV}
+upstream:   position 0 of child 3 {DIV} of root {DIV}
+downstream: position 0 of child 1 {BR} of child 1 {SPAN} of child 1 {FONT} of child 3 {DIV} of root {DIV}
index 87292629affc697aa274f780766efe49e1f35259..0a899f316890f0d6def969fbbbf1bd1f6210ce58 100644 (file)
@@ -40,6 +40,6 @@ layer at (0,0) size 800x600
               RenderText {TEXT} at (0,0) size 30x69
                 text run at (0,0) width 30: "x"
 selection is CARET:
-start:      position 0 of child 1 {TEXT} of child 1 {SPAN} of child 1 {FONT} of child 5 {DIV} of root {DIV}
-upstream:   position 0 of child 5 {DIV} of root {DIV}
-downstream: position 0 of child 1 {TEXT} of child 1 {SPAN} of child 1 {FONT} of child 5 {DIV} of root {DIV}
+start:      position 0 of child 1 {TEXT} of child 1 {SPAN} of child 1 {FONT} of child 4 {DIV} of root {DIV}
+upstream:   position 0 of child 4 {DIV} of root {DIV}
+downstream: position 0 of child 1 {TEXT} of child 1 {SPAN} of child 1 {FONT} of child 4 {DIV} of root {DIV}
index 89167dca11b320c9121d3bde7b6e9e871befe7f8..b14b1f59266490e04af167ce481d54b9a36cc69e 100644 (file)
@@ -12,6 +12,9 @@
         needs to add check for DOM children. A block may have straggling anonymous render children in
         some cases, and so the check needs to be (!DOM-kids || !render-kids).
 
+        Also, I botched the last checkin trying to split these two patches in my tree. Wrong layout tests 
+        got checked in, I checked in a conflict marker in the Changelog, etc. I fixed everything with this checkin.
+
 2005-03-01  Ken Kocienda  <kocienda@apple.com>
  
         Reviewed by Maciej