diff --git a/editor/libeditor/base/CreateElementTxn.cpp b/editor/libeditor/base/CreateElementTxn.cpp index 8521105d2de9..3783fd177e4f 100644 --- a/editor/libeditor/base/CreateElementTxn.cpp +++ b/editor/libeditor/base/CreateElementTxn.cpp @@ -94,38 +94,18 @@ NS_IMETHODIMP CreateElementTxn::DoTransaction(void) NS_ASSERTION(mEditor && mParent, "bad state"); if (!mEditor || !mParent) return NS_ERROR_NOT_INITIALIZED; - // create a new node - nsAutoString textNodeTag; - nsresult result = nsEditor::GetTextNodeTag(textNodeTag); - if (NS_FAILED(result)) { return result; } - if (textNodeTag == mTag) - { - nsCOMPtrdoc; - result = mEditor->GetDocument(getter_AddRefs(doc)); - if (NS_FAILED(result)) return result; - if (!doc) return NS_ERROR_NULL_POINTER; - - const nsString stringData; - nsCOMPtrnewTextNode; - result = doc->CreateTextNode(stringData, getter_AddRefs(newTextNode)); - if (NS_FAILED(result)) return result; - if (!newTextNode) return NS_ERROR_NULL_POINTER; - mNewNode = do_QueryInterface(newTextNode); - } - else - { - nsCOMPtr newContent; + nsCOMPtr newContent; + + //new call to use instead to get proper HTML element, bug# 39919 + nsresult result = mEditor->CreateHTMLContent(mTag, getter_AddRefs(newContent)); + if (NS_FAILED(result)) return result; + nsCOMPtrnewElement = do_QueryInterface(newContent); + if (!newElement) return NS_ERROR_NULL_POINTER; + mNewNode = do_QueryInterface(newElement); + // Try to insert formatting whitespace for the new node: + mEditor->MarkNodeDirty(mNewNode); - //new call to use instead to get proper HTML element, bug# 39919 - result = mEditor->CreateHTMLContent(mTag, getter_AddRefs(newContent)); - if (NS_FAILED(result)) return result; - nsCOMPtrnewElement = do_QueryInterface(newContent); - if (!newElement) return NS_ERROR_NULL_POINTER; - mNewNode = do_QueryInterface(newElement); - // Try to insert formatting whitespace for the new node: - mEditor->MarkNodeDirty(mNewNode); - } NS_ASSERTION(((NS_SUCCEEDED(result)) && (mNewNode)), "could not create element."); if (!mNewNode) return NS_ERROR_NULL_POINTER; diff --git a/editor/libeditor/base/nsEditor.cpp b/editor/libeditor/base/nsEditor.cpp index 91e46b2f9a11..8194e75e8384 100644 --- a/editor/libeditor/base/nsEditor.cpp +++ b/editor/libeditor/base/nsEditor.cpp @@ -2523,22 +2523,6 @@ NS_IMETHODIMP nsEditor::ScrollSelectionIntoView(PRBool aScrollToAnchor) return NS_OK; } -/** static helper method */ -nsresult nsEditor::GetTextNodeTag(nsAString& aOutString) -{ - aOutString.Truncate(); - static nsString *gTextNodeTag=nsnull; - if (!gTextNodeTag) - { - if ( (gTextNodeTag = new nsString) == 0 ) - return NS_ERROR_OUT_OF_MEMORY; - gTextNodeTag->AssignLiteral("special text node tag"); - } - aOutString = *gTextNodeTag; - return NS_OK; -} - - NS_IMETHODIMP nsEditor::InsertTextImpl(const nsAString& aStringToInsert, nsCOMPtr *aInOutNode, PRInt32 *aInOutOffset, diff --git a/editor/libeditor/base/nsEditor.h b/editor/libeditor/base/nsEditor.h index 7ae51af8136a..696fa94c7727 100644 --- a/editor/libeditor/base/nsEditor.h +++ b/editor/libeditor/base/nsEditor.h @@ -368,10 +368,6 @@ public: nsresult RestorePreservedSelection(nsISelection *aSel); void StopPreservingSelection(); - - /** return the string that represents text nodes in the content tree */ - static nsresult GetTextNodeTag(nsAString& aOutString); - /** * SplitNode() creates a new node identical to an existing node, and split the contents between the two nodes * @param aExistingRightNode the node to split. It will become the new node's next sibling.