diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp index ecec8b66287..2a573ce11af 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp @@ -1147,7 +1147,8 @@ void HTMLInputElement::did_receive_focus() if (m_placeholder_text_node) m_placeholder_text_node->invalidate_style(DOM::StyleInvalidationReason::DidReceiveFocus); - document().set_cursor_position(DOM::Position::create(realm(), *m_text_node, 0)); + if (auto cursor = document().cursor_position(); !cursor || m_text_node != cursor->node()) + document().set_cursor_position(DOM::Position::create(realm(), *m_text_node, m_text_node->length())); } void HTMLInputElement::did_lose_focus() diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp index 04412c87de1..4d0b5dcd304 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLTextAreaElement.cpp @@ -77,7 +77,8 @@ void HTMLTextAreaElement::did_receive_focus() if (m_placeholder_text_node) m_placeholder_text_node->invalidate_style(DOM::StyleInvalidationReason::DidReceiveFocus); - document().set_cursor_position(DOM::Position::create(realm(), *m_text_node, 0)); + if (auto cursor = document().cursor_position(); !cursor || m_text_node != cursor->node()) + document().set_cursor_position(DOM::Position::create(realm(), *m_text_node, 0)); } void HTMLTextAreaElement::did_lose_focus()