mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-05 14:42:50 +02:00
HTML: Put HTMLTextAreaElement selection helpers in FormAssociatedElement
This will allow us to more closely follow the spec and share these functions with HTMLInputElement. (cherry picked from commit 62bf428a7f57b585e6d0b8c01af2c0aca336fe2c)
This commit is contained in:
committed by
Nico Weber
parent
8a469cf7e4
commit
744b0e2d02
@@ -213,63 +213,6 @@ void HTMLTextAreaElement::set_custom_validity(String const& error)
|
||||
dbgln("(STUBBED) HTMLTextAreaElement::set_custom_validity(\"{}\"). Called on: {}", error, debug_description());
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-textarea/input-selectionstart
|
||||
WebIDL::UnsignedLong HTMLTextAreaElement::selection_start() const
|
||||
{
|
||||
// 1. If this element is an input element, and selectionStart does not apply to this element, return null.
|
||||
|
||||
// 2. If there is no selection, return the code unit offset within the relevant value to the character that
|
||||
// immediately follows the text entry cursor.
|
||||
if (auto navigable = document().navigable()) {
|
||||
if (auto cursor = navigable->cursor_position())
|
||||
return cursor->offset();
|
||||
}
|
||||
|
||||
// FIXME: 3. Return the code unit offset within the relevant value to the character that immediately follows the start of
|
||||
// the selection.
|
||||
return 0;
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#textFieldSelection:dom-textarea/input-selectionstart-2
|
||||
WebIDL::ExceptionOr<void> HTMLTextAreaElement::set_selection_start(WebIDL::UnsignedLong)
|
||||
{
|
||||
// 1. If this element is an input element, and selectionStart does not apply to this element, throw an
|
||||
// "InvalidStateError" DOMException.
|
||||
|
||||
// FIXME: 2. Let end be the value of this element's selectionEnd attribute.
|
||||
// FIXME: 3. If end is less than the given value, set end to the given value.
|
||||
// FIXME: 4. Set the selection range with the given value, end, and the value of this element's selectionDirection attribute.
|
||||
return {};
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-textarea/input-selectionend
|
||||
WebIDL::UnsignedLong HTMLTextAreaElement::selection_end() const
|
||||
{
|
||||
// 1. If this element is an input element, and selectionEnd does not apply to this element, return null.
|
||||
|
||||
// 2. If there is no selection, return the code unit offset within the relevant value to the character that
|
||||
// immediately follows the text entry cursor.
|
||||
if (auto navigable = document().navigable()) {
|
||||
if (auto cursor = navigable->cursor_position())
|
||||
return cursor->offset();
|
||||
}
|
||||
|
||||
// FIXME: 3. Return the code unit offset within the relevant value to the character that immediately follows the end of
|
||||
// the selection.
|
||||
return 0;
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#textFieldSelection:dom-textarea/input-selectionend-3
|
||||
WebIDL::ExceptionOr<void> HTMLTextAreaElement::set_selection_end(WebIDL::UnsignedLong)
|
||||
{
|
||||
// 1. If this element is an input element, and selectionEnd does not apply to this element, throw an
|
||||
// "InvalidStateError" DOMException.
|
||||
|
||||
// FIXME: 2. Set the selection range with the value of this element's selectionStart attribute, the given value, and the
|
||||
// value of this element's selectionDirection attribute.
|
||||
return {};
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/form-elements.html#dom-textarea-maxlength
|
||||
WebIDL::Long HTMLTextAreaElement::max_length() const
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user