mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 776323 part 2 - Clean up nsSelectionState::SaveSelection; r=ehsan
This commit is contained in:
parent
173e1ecf2d
commit
4e600e3af2
@ -7,7 +7,9 @@
|
||||
#include "nsEditor.h"
|
||||
#include "IMETextTxn.h"
|
||||
#include "nsGkAtoms.h"
|
||||
#include "nsISelection.h"
|
||||
#include "mozilla/Selection.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
PlaceholderTxn::PlaceholderTxn() : EditAggregateTxn(),
|
||||
mAbsorb(true),
|
||||
@ -42,7 +44,9 @@ NS_INTERFACE_MAP_END_INHERITING(EditAggregateTxn)
|
||||
NS_IMPL_ADDREF_INHERITED(PlaceholderTxn, EditAggregateTxn)
|
||||
NS_IMPL_RELEASE_INHERITED(PlaceholderTxn, EditAggregateTxn)
|
||||
|
||||
NS_IMETHODIMP PlaceholderTxn::Init(nsIAtom *aName, nsSelectionState *aSelState, nsIEditor *aEditor)
|
||||
NS_IMETHODIMP
|
||||
PlaceholderTxn::Init(nsIAtom* aName, nsSelectionState* aSelState,
|
||||
nsEditor* aEditor)
|
||||
{
|
||||
NS_ENSURE_TRUE(aEditor && aSelState, NS_ERROR_NULL_POINTER);
|
||||
|
||||
@ -256,10 +260,9 @@ NS_IMETHODIMP PlaceholderTxn::Commit()
|
||||
|
||||
NS_IMETHODIMP PlaceholderTxn::RememberEndingSelection()
|
||||
{
|
||||
nsCOMPtr<nsISelection> selection;
|
||||
nsresult res = mEditor->GetSelection(getter_AddRefs(selection));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
nsRefPtr<Selection> selection = mEditor->GetSelection();
|
||||
NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER);
|
||||
return mEndSel.SaveSelection(selection);
|
||||
mEndSel.SaveSelection(selection);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,8 @@ public:
|
||||
|
||||
// ------------ nsIAbsorbingTransaction -----------------------
|
||||
|
||||
NS_IMETHOD Init(nsIAtom *aName, nsSelectionState *aSelState, nsIEditor *aEditor);
|
||||
NS_IMETHOD Init(nsIAtom* aName, nsSelectionState* aSelState,
|
||||
nsEditor* aEditor);
|
||||
|
||||
NS_IMETHOD GetTxnName(nsIAtom **aName);
|
||||
|
||||
@ -72,7 +73,7 @@ protected:
|
||||
// selection properly.
|
||||
nsAutoPtr<nsSelectionState> mStartSel; // use a pointer because this is constructed before we exist
|
||||
nsSelectionState mEndSel;
|
||||
nsIEditor* mEditor; /** the editor for this transaction */
|
||||
nsEditor* mEditor; /** the editor for this transaction */
|
||||
};
|
||||
|
||||
|
||||
|
@ -904,9 +904,8 @@ nsEditor::BeginPlaceHolderTransaction(nsIAtom *aName)
|
||||
BeginUpdateViewBatch();
|
||||
mPlaceHolderTxn = nsnull;
|
||||
mPlaceHolderName = aName;
|
||||
nsCOMPtr<nsISelection> selection;
|
||||
nsresult res = GetSelection(getter_AddRefs(selection));
|
||||
if (NS_SUCCEEDED(res)) {
|
||||
nsRefPtr<Selection> selection = GetSelection();
|
||||
if (selection) {
|
||||
mSelState = new nsSelectionState();
|
||||
mSelState->SaveSelection(selection);
|
||||
}
|
||||
@ -1979,7 +1978,7 @@ nsEditor::ArePreservingSelection()
|
||||
}
|
||||
|
||||
void
|
||||
nsEditor::PreserveSelectionAcrossActions(nsISelection *aSel)
|
||||
nsEditor::PreserveSelectionAcrossActions(Selection* aSel)
|
||||
{
|
||||
mSavedSel.SaveSelection(aSel);
|
||||
mRangeUpdater.RegisterSelectionState(mSavedSel);
|
||||
|
@ -425,7 +425,7 @@ public:
|
||||
/** routines for managing the preservation of selection across
|
||||
* various editor actions */
|
||||
bool ArePreservingSelection();
|
||||
void PreserveSelectionAcrossActions(nsISelection *aSel);
|
||||
void PreserveSelectionAcrossActions(mozilla::Selection* aSel);
|
||||
nsresult RestorePreservedSelection(nsISelection *aSel);
|
||||
void StopPreservingSelection();
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
|
||||
#include "mozilla/Selection.h"
|
||||
#include "nsCOMArray.h"
|
||||
#include "nsComponentManagerUtils.h"
|
||||
#include "nsEditorUtils.h"
|
||||
@ -18,24 +18,23 @@
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
#include "nsINode.h"
|
||||
#include "nsISelection.h"
|
||||
#include "nsISimpleEnumerator.h"
|
||||
|
||||
class nsIDOMRange;
|
||||
class nsISupports;
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
/******************************************************************************
|
||||
* nsAutoSelectionReset
|
||||
*****************************************************************************/
|
||||
|
||||
nsAutoSelectionReset::nsAutoSelectionReset(nsISelection *aSel, nsEditor *aEd) :
|
||||
mSel(nsnull)
|
||||
,mEd(nsnull)
|
||||
nsAutoSelectionReset::nsAutoSelectionReset(Selection* aSel, nsEditor* aEd)
|
||||
: mSel(nsnull), mEd(nsnull)
|
||||
{
|
||||
if (!aSel || !aEd) return; // not much we can do, bail.
|
||||
if (aEd->ArePreservingSelection()) return; // we already have initted mSavedSel, so this must be nested call.
|
||||
mSel = do_QueryInterface(aSel);
|
||||
mSel = aSel;
|
||||
mEd = aEd;
|
||||
if (mSel)
|
||||
{
|
||||
|
@ -57,12 +57,12 @@ class NS_STACK_CLASS nsAutoSelectionReset
|
||||
{
|
||||
private:
|
||||
/** ref-counted reference to the selection that we are supposed to restore */
|
||||
nsCOMPtr<nsISelection> mSel;
|
||||
nsRefPtr<mozilla::Selection> mSel;
|
||||
nsEditor *mEd; // non-owning ref to nsEditor
|
||||
|
||||
public:
|
||||
/** constructor responsible for remembering all state needed to restore aSel */
|
||||
nsAutoSelectionReset(nsISelection *aSel, nsEditor *aEd);
|
||||
nsAutoSelectionReset(mozilla::Selection* aSel, nsEditor* aEd);
|
||||
|
||||
/** destructor restores mSel to its former state */
|
||||
~nsAutoSelectionReset();
|
||||
|
@ -32,7 +32,8 @@ public:
|
||||
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABSORBINGTRANSACTION_IID)
|
||||
|
||||
NS_IMETHOD Init(nsIAtom *aName, nsSelectionState *aSelState, nsIEditor *aEditor)=0;
|
||||
NS_IMETHOD Init(nsIAtom* aName, nsSelectionState* aSelState,
|
||||
nsEditor* aEditor) = 0;
|
||||
|
||||
NS_IMETHOD EndPlaceHolderBatch()=0;
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "mozilla/Assertions.h" // for MOZ_ASSERT, etc
|
||||
#include "mozilla/Selection.h" // for Selection
|
||||
#include "nsAString.h" // for nsAString_internal::Length
|
||||
#include "nsAutoPtr.h" // for nsRefPtr, getter_AddRefs, etc
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
@ -19,6 +20,7 @@
|
||||
#include "nsRange.h" // for nsRange
|
||||
#include "nsSelectionState.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
/***************************************************************************
|
||||
* class for recording selection info. stores selection as collection of
|
||||
@ -47,41 +49,30 @@ nsSelectionState::DoTraverse(nsCycleCollectionTraversalCallback &cb)
|
||||
}
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsSelectionState::SaveSelection(nsISelection *aSel)
|
||||
void
|
||||
nsSelectionState::SaveSelection(Selection* aSel)
|
||||
{
|
||||
NS_ENSURE_TRUE(aSel, NS_ERROR_NULL_POINTER);
|
||||
PRInt32 i,rangeCount, arrayCount = mArray.Length();
|
||||
aSel->GetRangeCount(&rangeCount);
|
||||
|
||||
MOZ_ASSERT(aSel);
|
||||
PRInt32 arrayCount = mArray.Length();
|
||||
PRInt32 rangeCount = aSel->GetRangeCount();
|
||||
|
||||
// if we need more items in the array, new them
|
||||
if (arrayCount<rangeCount)
|
||||
{
|
||||
for (i = arrayCount; i < rangeCount; i++) {
|
||||
if (arrayCount < rangeCount) {
|
||||
for (PRInt32 i = arrayCount; i < rangeCount; i++) {
|
||||
mArray.AppendElement();
|
||||
mArray[i] = new nsRangeStore();
|
||||
}
|
||||
}
|
||||
|
||||
// else if we have too many, delete them
|
||||
else if (arrayCount>rangeCount)
|
||||
{
|
||||
for (i = arrayCount-1; i >= rangeCount; i--)
|
||||
{
|
||||
} else if (arrayCount > rangeCount) {
|
||||
// else if we have too many, delete them
|
||||
for (PRInt32 i = arrayCount - 1; i >= rangeCount; i--) {
|
||||
mArray.RemoveElementAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// now store the selection ranges
|
||||
nsresult res = NS_OK;
|
||||
for (i=0; i<rangeCount; i++)
|
||||
{
|
||||
nsCOMPtr<nsIDOMRange> range;
|
||||
res = aSel->GetRangeAt(i, getter_AddRefs(range));
|
||||
mArray[i]->StoreRange(range);
|
||||
for (PRInt32 i = 0; i < rangeCount; i++) {
|
||||
mArray[i]->StoreRange(aSel->GetRangeAt(i));
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -18,6 +18,9 @@ class nsIDOMCharacterData;
|
||||
class nsIDOMRange;
|
||||
class nsISelection;
|
||||
class nsRange;
|
||||
namespace mozilla {
|
||||
class Selection;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
* class for recording selection info. stores selection as collection of
|
||||
@ -52,7 +55,7 @@ class nsSelectionState
|
||||
void DoTraverse(nsCycleCollectionTraversalCallback &cb);
|
||||
void DoUnlink() { MakeEmpty(); }
|
||||
|
||||
nsresult SaveSelection(nsISelection *aSel);
|
||||
void SaveSelection(mozilla::Selection *aSel);
|
||||
nsresult RestoreSelection(nsISelection *aSel);
|
||||
bool IsCollapsed();
|
||||
bool IsEqual(nsSelectionState *aSelState);
|
||||
|
@ -2869,7 +2869,7 @@ nsHTMLEditRules::DidDeleteSelection(nsISelection *aSelection,
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillMakeList(nsISelection* aSelection,
|
||||
nsHTMLEditRules::WillMakeList(Selection* aSelection,
|
||||
const nsAString* aListType,
|
||||
bool aEntireList,
|
||||
const nsAString* aBulletType,
|
||||
@ -3159,7 +3159,7 @@ nsHTMLEditRules::WillMakeList(nsISelection* aSelection,
|
||||
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillRemoveList(nsISelection *aSelection,
|
||||
nsHTMLEditRules::WillRemoveList(Selection* aSelection,
|
||||
bool aOrdered,
|
||||
bool *aCancel,
|
||||
bool *aHandled)
|
||||
@ -3226,7 +3226,7 @@ nsHTMLEditRules::WillRemoveList(nsISelection *aSelection,
|
||||
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillMakeDefListItem(nsISelection *aSelection,
|
||||
nsHTMLEditRules::WillMakeDefListItem(Selection* aSelection,
|
||||
const nsAString *aItemType,
|
||||
bool aEntireList,
|
||||
bool *aCancel,
|
||||
@ -3238,7 +3238,7 @@ nsHTMLEditRules::WillMakeDefListItem(nsISelection *aSelection,
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillMakeBasicBlock(nsISelection *aSelection,
|
||||
nsHTMLEditRules::WillMakeBasicBlock(Selection* aSelection,
|
||||
const nsAString *aBlockType,
|
||||
bool *aCancel,
|
||||
bool *aHandled)
|
||||
@ -3395,7 +3395,8 @@ nsHTMLEditRules::DidMakeBasicBlock(nsISelection *aSelection,
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillIndent(nsISelection *aSelection, bool *aCancel, bool * aHandled)
|
||||
nsHTMLEditRules::WillIndent(Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled)
|
||||
{
|
||||
nsresult res;
|
||||
if (mHTMLEditor->IsCSSEnabled()) {
|
||||
@ -3408,7 +3409,8 @@ nsHTMLEditRules::WillIndent(nsISelection *aSelection, bool *aCancel, bool * aHan
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillCSSIndent(nsISelection *aSelection, bool *aCancel, bool * aHandled)
|
||||
nsHTMLEditRules::WillCSSIndent(Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled)
|
||||
{
|
||||
if (!aSelection || !aCancel || !aHandled) { return NS_ERROR_NULL_POINTER; }
|
||||
|
||||
@ -3614,7 +3616,8 @@ nsHTMLEditRules::WillCSSIndent(nsISelection *aSelection, bool *aCancel, bool * a
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillHTMLIndent(nsISelection *aSelection, bool *aCancel, bool * aHandled)
|
||||
nsHTMLEditRules::WillHTMLIndent(Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled)
|
||||
{
|
||||
if (!aSelection || !aCancel || !aHandled) { return NS_ERROR_NULL_POINTER; }
|
||||
nsresult res = WillInsert(aSelection, aCancel);
|
||||
@ -3842,7 +3845,8 @@ nsHTMLEditRules::WillHTMLIndent(nsISelection *aSelection, bool *aCancel, bool *
|
||||
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillOutdent(nsISelection *aSelection, bool *aCancel, bool *aHandled)
|
||||
nsHTMLEditRules::WillOutdent(Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled)
|
||||
{
|
||||
if (!aSelection || !aCancel || !aHandled) { return NS_ERROR_NULL_POINTER; }
|
||||
// initialize out param
|
||||
@ -4412,7 +4416,7 @@ nsHTMLEditRules::IsEmptyBlock(nsIDOMNode *aNode,
|
||||
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillAlign(nsISelection *aSelection,
|
||||
nsHTMLEditRules::WillAlign(Selection* aSelection,
|
||||
const nsAString *alignType,
|
||||
bool *aCancel,
|
||||
bool *aHandled)
|
||||
@ -8570,7 +8574,8 @@ nsHTMLEditRules::RelativeChangeIndentationOfElementNode(nsIDOMNode *aNode, PRInt
|
||||
//
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillAbsolutePosition(nsISelection *aSelection, bool *aCancel, bool * aHandled)
|
||||
nsHTMLEditRules::WillAbsolutePosition(Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled)
|
||||
{
|
||||
if (!aSelection || !aCancel || !aHandled) { return NS_ERROR_NULL_POINTER; }
|
||||
nsresult res = WillInsert(aSelection, aCancel);
|
||||
@ -8786,8 +8791,8 @@ nsHTMLEditRules::DidAbsolutePosition()
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillRemoveAbsolutePosition(nsISelection *aSelection, bool *aCancel, bool * aHandled)
|
||||
{
|
||||
nsHTMLEditRules::WillRemoveAbsolutePosition(Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled) {
|
||||
if (!aSelection || !aCancel || !aHandled) { return NS_ERROR_NULL_POINTER; }
|
||||
nsresult res = WillInsert(aSelection, aCancel);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
@ -8808,7 +8813,7 @@ nsHTMLEditRules::WillRemoveAbsolutePosition(nsISelection *aSelection, bool *aCan
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLEditRules::WillRelativeChangeZIndex(nsISelection *aSelection,
|
||||
nsHTMLEditRules::WillRelativeChangeZIndex(Selection* aSelection,
|
||||
PRInt32 aChange,
|
||||
bool *aCancel,
|
||||
bool * aHandled)
|
||||
|
@ -156,18 +156,38 @@ protected:
|
||||
nsresult MoveNodeSmart(nsIDOMNode *aSource, nsIDOMNode *aDest, PRInt32 *aOffset);
|
||||
nsresult MoveContents(nsIDOMNode *aSource, nsIDOMNode *aDest, PRInt32 *aOffset);
|
||||
nsresult DeleteNonTableElements(nsINode* aNode);
|
||||
nsresult WillMakeList(nsISelection *aSelection, const nsAString *aListType, bool aEntireList, const nsAString *aBulletType, bool *aCancel, bool *aHandled, const nsAString *aItemType=nsnull);
|
||||
nsresult WillRemoveList(nsISelection *aSelection, bool aOrderd, bool *aCancel, bool *aHandled);
|
||||
nsresult WillIndent(nsISelection *aSelection, bool *aCancel, bool *aHandled);
|
||||
nsresult WillCSSIndent(nsISelection *aSelection, bool *aCancel, bool *aHandled);
|
||||
nsresult WillHTMLIndent(nsISelection *aSelection, bool *aCancel, bool *aHandled);
|
||||
nsresult WillOutdent(nsISelection *aSelection, bool *aCancel, bool *aHandled);
|
||||
nsresult WillAlign(nsISelection *aSelection, const nsAString *alignType, bool *aCancel, bool *aHandled);
|
||||
nsresult WillAbsolutePosition(nsISelection *aSelection, bool *aCancel, bool * aHandled);
|
||||
nsresult WillRemoveAbsolutePosition(nsISelection *aSelection, bool *aCancel, bool * aHandled);
|
||||
nsresult WillRelativeChangeZIndex(nsISelection *aSelection, PRInt32 aChange, bool *aCancel, bool * aHandled);
|
||||
nsresult WillMakeDefListItem(nsISelection *aSelection, const nsAString *aBlockType, bool aEntireList, bool *aCancel, bool *aHandled);
|
||||
nsresult WillMakeBasicBlock(nsISelection *aSelection, const nsAString *aBlockType, bool *aCancel, bool *aHandled);
|
||||
nsresult WillMakeList(mozilla::Selection* aSelection,
|
||||
const nsAString* aListType,
|
||||
bool aEntireList,
|
||||
const nsAString* aBulletType,
|
||||
bool* aCancel, bool* aHandled,
|
||||
const nsAString* aItemType = nsnull);
|
||||
nsresult WillRemoveList(mozilla::Selection* aSelection,
|
||||
bool aOrdered, bool* aCancel, bool* aHandled);
|
||||
nsresult WillIndent(mozilla::Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillCSSIndent(mozilla::Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillHTMLIndent(mozilla::Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillOutdent(mozilla::Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillAlign(mozilla::Selection* aSelection,
|
||||
const nsAString* alignType,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillAbsolutePosition(mozilla::Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillRemoveAbsolutePosition(mozilla::Selection* aSelection,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillRelativeChangeZIndex(mozilla::Selection* aSelection,
|
||||
PRInt32 aChange,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillMakeDefListItem(mozilla::Selection* aSelection,
|
||||
const nsAString* aBlockType, bool aEntireList,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult WillMakeBasicBlock(mozilla::Selection* aSelection,
|
||||
const nsAString* aBlockType,
|
||||
bool* aCancel, bool* aHandled);
|
||||
nsresult DidMakeBasicBlock(nsISelection *aSelection, nsRulesInfo *aInfo, nsresult aResult);
|
||||
nsresult DidAbsolutePosition();
|
||||
nsresult AlignInnerBlocks(nsIDOMNode *aNode, const nsAString *alignType);
|
||||
|
@ -3379,15 +3379,13 @@ SetSelectionAroundHeadChildren(nsISelection* aSelection,
|
||||
NS_IMETHODIMP
|
||||
nsHTMLEditor::GetHeadContentsAsHTML(nsAString& aOutputString)
|
||||
{
|
||||
nsCOMPtr<nsISelection> selection;
|
||||
nsresult res = GetSelection(getter_AddRefs(selection));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
nsRefPtr<Selection> selection = GetSelection();
|
||||
NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER);
|
||||
|
||||
// Save current selection
|
||||
nsAutoSelectionReset selectionResetter(selection, this);
|
||||
|
||||
res = SetSelectionAroundHeadChildren(selection, mDocWeak);
|
||||
nsresult res = SetSelectionAroundHeadChildren(selection, mDocWeak);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
|
||||
res = OutputToString(NS_LITERAL_STRING("text/html"),
|
||||
|
@ -1535,11 +1535,8 @@ nsHTMLEditor::RelativeFontChange( PRInt32 aSizeChange)
|
||||
ForceCompositionEnd();
|
||||
|
||||
// Get the selection
|
||||
nsCOMPtr<nsISelection>selection;
|
||||
nsresult res = GetSelection(getter_AddRefs(selection));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
nsRefPtr<Selection> selection = GetSelection();
|
||||
NS_ENSURE_TRUE(selection, NS_ERROR_FAILURE);
|
||||
nsCOMPtr<nsISelectionPrivate> selPriv(do_QueryInterface(selection));
|
||||
// Is the selection collapsed?
|
||||
// if it's collapsed set typing state
|
||||
if (selection->Collapsed()) {
|
||||
@ -1554,7 +1551,7 @@ nsHTMLEditor::RelativeFontChange( PRInt32 aSizeChange)
|
||||
NS_ENSURE_TRUE(selectedNode, NS_OK);
|
||||
if (IsTextNode(selectedNode)) {
|
||||
nsCOMPtr<nsIDOMNode> parent;
|
||||
res = selectedNode->GetParentNode(getter_AddRefs(parent));
|
||||
nsresult res = selectedNode->GetParentNode(getter_AddRefs(parent));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
selectedNode = parent;
|
||||
}
|
||||
@ -1575,7 +1572,7 @@ nsHTMLEditor::RelativeFontChange( PRInt32 aSizeChange)
|
||||
|
||||
// get selection range enumerator
|
||||
nsCOMPtr<nsIEnumerator> enumerator;
|
||||
res = selPriv->GetEnumerator(getter_AddRefs(enumerator));
|
||||
nsresult res = selection->GetEnumerator(getter_AddRefs(enumerator));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
NS_ENSURE_TRUE(enumerator, NS_ERROR_FAILURE);
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "mozilla/Assertions.h"
|
||||
#include "mozilla/Selection.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
#include "nsAString.h"
|
||||
#include "nsAlgorithm.h"
|
||||
@ -28,8 +29,6 @@
|
||||
#include "nsIHTMLEditor.h"
|
||||
#include "nsINode.h"
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsISelection.h"
|
||||
#include "nsISelectionPrivate.h" // For nsISelectionPrivate::TABLESELECTION_ defines
|
||||
#include "nsISupportsUtils.h"
|
||||
#include "nsITableCellLayout.h" // For efficient access to table cell
|
||||
#include "nsITableEditor.h"
|
||||
@ -1953,9 +1952,7 @@ nsHTMLEditor::SwitchTableCellHeaderType(nsIDOMElement *aSourceCell, nsIDOMElemen
|
||||
// Save current selection to restore when done
|
||||
// This is needed so ReplaceContainer can monitor selection
|
||||
// when replacing nodes
|
||||
nsCOMPtr<nsISelection>selection;
|
||||
nsresult res = GetSelection(getter_AddRefs(selection));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
nsRefPtr<Selection> selection = GetSelection();
|
||||
NS_ENSURE_TRUE(selection, NS_ERROR_FAILURE);
|
||||
nsAutoSelectionReset selectionResetter(selection, this);
|
||||
|
||||
@ -1965,7 +1962,8 @@ nsHTMLEditor::SwitchTableCellHeaderType(nsIDOMElement *aSourceCell, nsIDOMElemen
|
||||
|
||||
// This creates new node, moves children, copies attributes (true)
|
||||
// and manages the selection!
|
||||
res = ReplaceContainer(aSourceCell, address_of(newNode), newCellType, nsnull, nsnull, true);
|
||||
nsresult res = ReplaceContainer(aSourceCell, address_of(newNode),
|
||||
newCellType, nsnull, nsnull, true);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
NS_ENSURE_TRUE(newNode, NS_ERROR_FAILURE);
|
||||
|
||||
@ -2491,13 +2489,12 @@ nsHTMLEditor::FixBadColSpan(nsIDOMElement *aTable, PRInt32 aColIndex, PRInt32& a
|
||||
NS_IMETHODIMP
|
||||
nsHTMLEditor::NormalizeTable(nsIDOMElement *aTable)
|
||||
{
|
||||
nsCOMPtr<nsISelection>selection;
|
||||
nsresult res = GetSelection(getter_AddRefs(selection));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
nsRefPtr<Selection> selection = GetSelection();
|
||||
NS_ENSURE_TRUE(selection, NS_ERROR_FAILURE);
|
||||
|
||||
nsCOMPtr<nsIDOMElement> table;
|
||||
res = GetElementOrParentByTagName(NS_LITERAL_STRING("table"), aTable, getter_AddRefs(table));
|
||||
nsresult res = GetElementOrParentByTagName(NS_LITERAL_STRING("table"),
|
||||
aTable, getter_AddRefs(table));
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
// Don't fail if we didn't find a table
|
||||
NS_ENSURE_TRUE(table, NS_OK);
|
||||
|
Loading…
Reference in New Issue
Block a user