Reviewed by John
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Sep 2004 20:17:29 +0000 (20:17 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Sep 2004 20:17:29 +0000 (20:17 +0000)
        Fix for this bug:

        <rdar://problem/3784840> REGRESSION (Mail): Text is inserted in the wrong place after changing typing style

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::InputTextCommandImpl::prepareForTextInsertion): Code to handle typing style did not
        check to see if the reference node used for the DOM node insertion operation was a block.
        If it is, then the new node containing the new editing style now is inserted at the start of the block,
        instead of after it.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/editing/htmlediting_impl.cpp

index 235f8fd..7bc4c49 100644 (file)
@@ -1,5 +1,19 @@
 2004-09-13  Ken Kocienda  <kocienda@apple.com>
 
+        Reviewed by John
+
+        Fix for this bug:
+        
+        <rdar://problem/3784840> REGRESSION (Mail): Text is inserted in the wrong place after changing typing style
+
+        * khtml/editing/htmlediting_impl.cpp:
+        (khtml::InputTextCommandImpl::prepareForTextInsertion): Code to handle typing style did not
+        check to see if the reference node used for the DOM node insertion operation was a block.
+        If it is, then the new node containing the new editing style now is inserted at the start of the block,
+        instead of after it.
+
+2004-09-13  Ken Kocienda  <kocienda@apple.com>
+
         Reviewed by me
         
         Added a couple new layout tests to cover recent changes.
index 2c414ce..b574a30 100644 (file)
@@ -1544,7 +1544,10 @@ Position InputTextCommandImpl::prepareForTextInsertion(bool adjustDownstream)
             
             TextImpl *editingTextNode = document()->createEditingTextNode("");
             NodeImpl *node = endingSelection().start().upstream(StayInBlock).node();
-            insertNodeAfter(applyTypingStyle(editingTextNode), node);
+            if (node->isBlockFlow())
+                insertNodeAt(applyTypingStyle(editingTextNode), node, 0);
+            else
+                insertNodeAfter(applyTypingStyle(editingTextNode), node);
             pos = Position(editingTextNode, 0);
         }
     }