Bug 1935923 - part 5: Make HTMLEditor::InsertPaddingBRElementIfNeeded return CreateLineBreakResult r=m_kato

Differential Revision: https://phabricator.services.mozilla.com/D231660
This commit is contained in:
Masayuki Nakano
2024-12-22 01:56:39 +00:00
parent 1940c2e20c
commit 050416a35c
4 changed files with 48 additions and 52 deletions

View File

@@ -3393,22 +3393,22 @@ HTMLEditor::DeleteTextAndNormalizeSurroundingWhiteSpaces(
if (GetTopLevelEditSubAction() == EditSubAction::eDeleteSelectedContent) {
AutoTrackDOMPoint trackingNewCaretPosition(RangeUpdaterRef(),
&newCaretPosition);
Result<CreateElementResult, nsresult> insertPaddingBRResult =
Result<CreateLineBreakResult, nsresult> insertPaddingBRElementOrError =
InsertPaddingBRElementIfNeeded(
newCaretPosition,
aEditingHost.IsContentEditablePlainTextOnly() ? nsIEditor::eNoStrip
: nsIEditor::eStrip,
aEditingHost);
if (MOZ_UNLIKELY(insertPaddingBRResult.isErr())) {
if (MOZ_UNLIKELY(insertPaddingBRElementOrError.isErr())) {
NS_WARNING("HTMLEditor::InsertPaddingBRElementIfNeeded() failed");
return insertPaddingBRResult.propagateErr();
return insertPaddingBRElementOrError.propagateErr();
}
trackingNewCaretPosition.FlushAndStopTracking();
if (!newCaretPosition.IsInTextNode()) {
insertPaddingBRResult.unwrap().MoveCaretPointTo(
insertPaddingBRElementOrError.unwrap().MoveCaretPointTo(
newCaretPosition, {SuggestCaret::OnlyIfHasSuggestion});
} else {
insertPaddingBRResult.unwrap().IgnoreCaretPointSuggestion();
insertPaddingBRElementOrError.unwrap().IgnoreCaretPointSuggestion();
}
}
if (!newCaretPosition.IsSetAndValid()) {
@@ -11161,7 +11161,7 @@ HTMLEditor::InsertPaddingBRElementIfInEmptyBlock(
EditorDOMPoint(paddingBRElement));
}
Result<CreateElementResult, nsresult>
Result<CreateLineBreakResult, nsresult>
HTMLEditor::InsertPaddingBRElementIfNeeded(
const EditorDOMPoint& aPoint, nsIEditor::EStripWrappers aDeleteEmptyInlines,
const Element& aEditingHost) {
@@ -11171,7 +11171,7 @@ HTMLEditor::InsertPaddingBRElementIfNeeded(
HTMLEditUtils::LineRequiresPaddingLineBreakToBeVisible(aPoint,
aEditingHost);
if (!pointToInsertPaddingBR.IsSet()) {
return CreateElementResult::NotHandled();
return CreateLineBreakResult::NotHandled();
}
if (aDeleteEmptyInlines == nsIEditor::eStrip &&
pointToInsertPaddingBR.IsContainerElement() &&
@@ -11203,16 +11203,10 @@ HTMLEditor::InsertPaddingBRElementIfNeeded(
Result<CreateLineBreakResult, nsresult> insertPaddingBRResultOrError =
InsertLineBreak(WithTransaction::Yes, LineBreakType::BRElement,
pointToInsertPaddingBR);
if (MOZ_UNLIKELY(insertPaddingBRResultOrError.isErr())) {
NS_WARNING(
"HTMLEditor::InsertLineBreak(WithTransaction::Yes, "
"LineBreakType::BRElement) failed");
return insertPaddingBRResultOrError.propagateErr();
}
CreateLineBreakResult insertPaddingBRResult =
insertPaddingBRResultOrError.unwrap();
return CreateElementResult(insertPaddingBRResult->BRElementRef(),
insertPaddingBRResult.UnwrapCaretPoint());
NS_WARNING_ASSERTION(insertPaddingBRResultOrError.isOk(),
"HTMLEditor::InsertLineBreak(WithTransaction::Yes, "
"LineBreakType::BRElement) failed");
return insertPaddingBRResultOrError;
}
Result<EditorDOMPoint, nsresult> HTMLEditor::RemoveAlignFromDescendants(