summaryrefslogtreecommitdiffstats
path: root/editor
diff options
context:
space:
mode:
authorGaming4JC <g4jc@hyperbola.info>2020-05-22 12:05:13 -0400
committerMoonchild <moonchild@palemoon.org>2020-08-07 21:26:33 +0000
commitc77c6de9ce177787192e6fc1af1d017f92603069 (patch)
tree15bb6e88d17bd8dabd2067718fd20a17ac961000 /editor
parent922a72766caa4a833f5775b17e4729ae5f79260d (diff)
downloadUXP-c77c6de9ce177787192e6fc1af1d017f92603069.tar
UXP-c77c6de9ce177787192e6fc1af1d017f92603069.tar.gz
UXP-c77c6de9ce177787192e6fc1af1d017f92603069.tar.lz
UXP-c77c6de9ce177787192e6fc1af1d017f92603069.tar.xz
UXP-c77c6de9ce177787192e6fc1af1d017f92603069.zip
Bug 1318570 - Clean up GetTextNode into TextEditRules.
EditorBase parameter of GetTextNode is unnecessary because it uses static method only. Also, we should return nsINode to reduce QI. Resolves #1617
Diffstat (limited to 'editor')
-rw-r--r--editor/libeditor/TextEditRules.cpp34
1 files changed, 14 insertions, 20 deletions
diff --git a/editor/libeditor/TextEditRules.cpp b/editor/libeditor/TextEditRules.cpp
index 8f8f34e8b..4ffcd2618 100644
--- a/editor/libeditor/TextEditRules.cpp
+++ b/editor/libeditor/TextEditRules.cpp
@@ -25,7 +25,6 @@
#include "nsError.h"
#include "nsGkAtoms.h"
#include "nsIContent.h"
-#include "nsIDOMCharacterData.h"
#include "nsIDOMDocument.h"
#include "nsIDOMElement.h"
#include "nsIDOMNode.h"
@@ -482,26 +481,24 @@ TextEditRules::CollapseSelectionToTrailingBRIfNeeded(Selection* aSelection)
return NS_OK;
}
-static inline already_AddRefed<nsIDOMNode>
-GetTextNode(Selection* selection,
- EditorBase* editor)
+static inline already_AddRefed<nsINode>
+GetTextNode(Selection* selection)
{
int32_t selOffset;
- nsCOMPtr<nsIDOMNode> selNode;
+ nsCOMPtr<nsINode> selNode;
nsresult rv =
- editor->GetStartNodeAndOffset(selection,
- getter_AddRefs(selNode), &selOffset);
+ EditorBase::GetStartNodeAndOffset(selection,
+ getter_AddRefs(selNode), &selOffset);
NS_ENSURE_SUCCESS(rv, nullptr);
- if (!editor->IsTextNode(selNode)) {
- // Get an nsINode from the nsIDOMNode
- nsCOMPtr<nsINode> node = do_QueryInterface(selNode);
- // if node is null, return it to indicate there's no text
- NS_ENSURE_TRUE(node, nullptr);
+ if (!EditorBase::IsTextNode(selNode)) {
// This should be the root node, walk the tree looking for text nodes
RefPtr<NodeIterator> iter =
- new NodeIterator(node, nsIDOMNodeFilter::SHOW_TEXT, NodeFilterHolder());
- while (!editor->IsTextNode(selNode)) {
- if (NS_FAILED(iter->NextNode(getter_AddRefs(selNode))) || !selNode) {
+ new NodeIterator(selNode, nsIDOMNodeFilter::SHOW_TEXT,
+ NodeFilterHolder());
+ while (!EditorBase::IsTextNode(selNode)) {
+ IgnoredErrorResult rv;
+ selNode = iter->NextNode(rv);
+ if (!selNode) {
return nullptr;
}
}
@@ -1385,13 +1382,10 @@ TextEditRules::HideLastPWInput()
nsContentUtils::GetSelectionInTextControl(selection, mTextEditor->GetRoot(),
start, end);
- nsCOMPtr<nsIDOMNode> selNode = GetTextNode(selection, mTextEditor);
+ nsCOMPtr<nsINode> selNode = GetTextNode(selection);
NS_ENSURE_TRUE(selNode, NS_OK);
- nsCOMPtr<nsIDOMCharacterData> nodeAsText(do_QueryInterface(selNode));
- NS_ENSURE_TRUE(nodeAsText, NS_OK);
-
- nodeAsText->ReplaceData(mLastStart, mLastLength, hiddenText);
+ selNode->GetAsText()->ReplaceData(mLastStart, mLastLength, hiddenText);
selection->Collapse(selNode, start);
if (start != end) {
selection->Extend(selNode, end);