зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1343037 part 15. Implement nsTextEditorState::GetSelectionDirection. r=ehsan
MozReview-Commit-ID: 1bLLYhjmlff
This commit is contained in:
Родитель
c97142b029
Коммит
64343d8606
|
@ -6497,20 +6497,6 @@ HTMLInputElement::GetSelectionRange(int32_t* aSelectionStart,
|
|||
state->GetSelectionRange(aSelectionStart, aSelectionEnd, aRv);
|
||||
}
|
||||
|
||||
static void
|
||||
DirectionToName(nsITextControlFrame::SelectionDirection dir, nsAString& aDirection)
|
||||
{
|
||||
if (dir == nsITextControlFrame::eNone) {
|
||||
aDirection.AssignLiteral("none");
|
||||
} else if (dir == nsITextControlFrame::eForward) {
|
||||
aDirection.AssignLiteral("forward");
|
||||
} else if (dir == nsITextControlFrame::eBackward) {
|
||||
aDirection.AssignLiteral("backward");
|
||||
} else {
|
||||
NS_NOTREACHED("Invalid SelectionDirection value");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
HTMLInputElement::GetSelectionDirection(nsAString& aDirection, ErrorResult& aRv)
|
||||
{
|
||||
|
@ -6521,13 +6507,7 @@ HTMLInputElement::GetSelectionDirection(nsAString& aDirection, ErrorResult& aRv)
|
|||
|
||||
nsTextEditorState* state = GetEditorState();
|
||||
MOZ_ASSERT(state, "SupportsTextSelection came back true!");
|
||||
nsITextControlFrame::SelectionDirection dir =
|
||||
state->GetSelectionDirection(aRv);
|
||||
if (aRv.Failed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
DirectionToName(dir, aDirection);
|
||||
state->GetSelectionDirectionString(aDirection, aRv);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -736,29 +736,10 @@ HTMLTextAreaElement::GetSelectionRange(int32_t* aSelectionStart,
|
|||
return mState.GetSelectionRange(aSelectionStart, aSelectionEnd, aRv);
|
||||
}
|
||||
|
||||
static void
|
||||
DirectionToName(nsITextControlFrame::SelectionDirection dir, nsAString& aDirection)
|
||||
{
|
||||
if (dir == nsITextControlFrame::eNone) {
|
||||
aDirection.AssignLiteral("none");
|
||||
} else if (dir == nsITextControlFrame::eForward) {
|
||||
aDirection.AssignLiteral("forward");
|
||||
} else if (dir == nsITextControlFrame::eBackward) {
|
||||
aDirection.AssignLiteral("backward");
|
||||
} else {
|
||||
NS_NOTREACHED("Invalid SelectionDirection value");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
HTMLTextAreaElement::GetSelectionDirection(nsAString& aDirection, ErrorResult& aError)
|
||||
{
|
||||
nsITextControlFrame::SelectionDirection dir =
|
||||
mState.GetSelectionDirection(aError);
|
||||
if (aError.Failed()) {
|
||||
return;
|
||||
}
|
||||
DirectionToName(dir, aDirection);
|
||||
mState.GetSelectionDirectionString(aDirection, aError);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1762,6 +1762,32 @@ nsTextEditorState::SetSelectionEnd(const mozilla::dom::Nullable<uint32_t>& aEnd,
|
|||
SetSelectionRange(start, end, dir, aRv);
|
||||
}
|
||||
|
||||
static void
|
||||
DirectionToName(nsITextControlFrame::SelectionDirection dir, nsAString& aDirection)
|
||||
{
|
||||
if (dir == nsITextControlFrame::eNone) {
|
||||
NS_WARNING("We don't actually support this... how did we get it?");
|
||||
aDirection.AssignLiteral("none");
|
||||
} else if (dir == nsITextControlFrame::eForward) {
|
||||
aDirection.AssignLiteral("forward");
|
||||
} else if (dir == nsITextControlFrame::eBackward) {
|
||||
aDirection.AssignLiteral("backward");
|
||||
} else {
|
||||
NS_NOTREACHED("Invalid SelectionDirection value");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
nsTextEditorState::GetSelectionDirectionString(nsAString& aDirection,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
nsITextControlFrame::SelectionDirection dir = GetSelectionDirection(aRv);
|
||||
if (aRv.Failed()) {
|
||||
return;
|
||||
}
|
||||
DirectionToName(dir, aDirection);
|
||||
}
|
||||
|
||||
static nsITextControlFrame::SelectionDirection
|
||||
DirectionStringToSelectionDirection(const nsAString& aDirection)
|
||||
{
|
||||
|
|
|
@ -310,6 +310,12 @@ public:
|
|||
void SetSelectionEnd(const mozilla::dom::Nullable<uint32_t>& aEnd,
|
||||
mozilla::ErrorResult& aRv);
|
||||
|
||||
// Get the selection direction as a string. This implements the
|
||||
// https://html.spec.whatwg.org/multipage/forms.html#dom-textarea/input-selectiondirection
|
||||
// getter.
|
||||
void GetSelectionDirectionString(nsAString& aDirection,
|
||||
mozilla::ErrorResult& aRv);
|
||||
|
||||
// Set the selection direction. This basically implements the
|
||||
// https://html.spec.whatwg.org/multipage/forms.html#dom-textarea/input-selectiondirection
|
||||
// setter.
|
||||
|
|
Загрузка…
Ссылка в новой задаче