diff --git a/editor/libeditor/base/nsSelectionState.cpp b/editor/libeditor/base/nsSelectionState.cpp index 956d25984134..d9788bba9504 100644 --- a/editor/libeditor/base/nsSelectionState.cpp +++ b/editor/libeditor/base/nsSelectionState.cpp @@ -319,36 +319,35 @@ nsRangeUpdater::SelAdjDeleteNode(nsIDOMNode *aNode) item->startOffset--; if ((item->endNode.get() == parent) && (item->endOffset > offset)) item->endOffset--; - } + + // check for range endpoints that are in aNode + if (item->startNode == aNode) + { + item->startNode = parent; + item->startOffset = offset; + } + if (item->endNode == aNode) + { + item->endNode = parent; + item->endOffset = offset; + } - // check for range endpoints that are in aNode - if (item->startNode == aNode) - { - item->startNode = parent; - item->startOffset = offset; - } - if (item->endNode == aNode) - { - item->endNode = parent; - item->endOffset = offset; - } + // check for range endpoints that are in descendants of aNode + nsCOMPtr oldStart; + if (nsEditorUtils::IsDescendantOf(item->startNode, aNode)) + { + oldStart = item->startNode; // save for efficiency hack below. + item->startNode = parent; + item->startOffset = offset; + } - // check for range endpoints that are in descendants of aNode - nsCOMPtr oldStart; - if (nsEditorUtils::IsDescendantOf(item->startNode, aNode)) - { - oldStart = item->startNode; // save for efficiency hack below. - item->startNode = parent; - item->startOffset = offset; + // avoid having to call IsDescendantOf() for common case of range startnode == range endnode. + if ((item->endNode == oldStart) || nsEditorUtils::IsDescendantOf(item->endNode, aNode)) + { + item->endNode = parent; + item->endOffset = offset; + } } - - // avoid having to call IsDescendantOf() for common case of range startnode == range endnode. - if ((item->endNode == oldStart) || nsEditorUtils::IsDescendantOf(item->endNode, aNode)) - { - item->endNode = parent; - item->endOffset = offset; - } - return NS_OK; }