diff options
Diffstat (limited to 'WebCore/editing/InsertParagraphSeparatorCommand.cpp')
-rw-r--r-- | WebCore/editing/InsertParagraphSeparatorCommand.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/WebCore/editing/InsertParagraphSeparatorCommand.cpp b/WebCore/editing/InsertParagraphSeparatorCommand.cpp index d8aa98f..a3dfa83 100644 --- a/WebCore/editing/InsertParagraphSeparatorCommand.cpp +++ b/WebCore/editing/InsertParagraphSeparatorCommand.cpp @@ -312,7 +312,7 @@ void InsertParagraphSeparatorCommand::doApply() 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()); @@ -385,10 +385,10 @@ void InsertParagraphSeparatorCommand::doApply() 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()); } } |