Index: WebCore/editing/InsertParagraphSeparatorCommand.cpp |
=================================================================== |
--- WebCore/editing/InsertParagraphSeparatorCommand.cpp (revision 55442) |
+++ WebCore/editing/InsertParagraphSeparatorCommand.cpp (working copy) |
@@ -315,7 +315,7 @@ |
Position leadingWhitespace = insertionPosition.leadingWhitespacePosition(VP_DEFAULT_AFFINITY); |
// FIXME: leadingWhitespacePosition is returning the position before preserved newlines for positions |
// after the preserved newline, causing the newline to be turned into a nbsp. |
- if (leadingWhitespace.isNotNull()) { |
+ if (leadingWhitespace.isNotNull() && leadingWhitespace.node()->isTextNode()) { |
Text* textNode = static_cast<Text*>(leadingWhitespace.node()); |
ASSERT(!textNode->renderer() || textNode->renderer()->style()->collapseWhiteSpace()); |
replaceTextInNode(textNode, leadingWhitespace.deprecatedEditingOffset(), 1, nonBreakingSpaceString()); |
@@ -388,10 +388,10 @@ |
insertionPosition = Position(insertionPosition.node(), 0); |
if (!insertionPosition.isRenderedCharacter()) { |
// Clear out all whitespace and insert one non-breaking space |
- ASSERT(insertionPosition.node()->isTextNode()); |
ASSERT(!insertionPosition.node()->renderer() || insertionPosition.node()->renderer()->style()->collapseWhiteSpace()); |
deleteInsignificantTextDownstream(insertionPosition); |
- insertTextIntoNode(static_cast<Text*>(insertionPosition.node()), 0, nonBreakingSpaceString()); |
+ if (insertionPosition.node()->isTextNode()) |
+ insertTextIntoNode(static_cast<Text*>(insertionPosition.node()), 0, nonBreakingSpaceString()); |
} |
} |