From 5d76fa72e97cc84912fecf111d885e5d6bba71ff Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Sat, 24 Feb 2024 02:43:57 +0100 Subject: [PATCH] LibWeb: Add HTMLElement::did_receive_focus() --- Userland/Libraries/LibWeb/HTML/HTMLElement.cpp | 10 ++++++++++ Userland/Libraries/LibWeb/HTML/HTMLElement.h | 1 + 2 files changed, 11 insertions(+) diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp index f958711ed0..03cda6a6cd 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp @@ -547,4 +547,14 @@ TokenizedFeature::NoOpener HTMLElement::get_an_elements_noopener(StringView targ return TokenizedFeature::NoOpener::No; } +void HTMLElement::did_receive_focus() +{ + if (m_content_editable_state != ContentEditableState::True) + return; + auto* browsing_context = document().browsing_context(); + if (!browsing_context) + return; + browsing_context->set_cursor_position(DOM::Position::create(realm(), *this, 0)); +} + } diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.h b/Userland/Libraries/LibWeb/HTML/HTMLElement.h index 1c23657a33..cc4a8946b0 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLElement.h +++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.h @@ -82,6 +82,7 @@ private: // ^HTML::GlobalEventHandlers virtual DOM::EventTarget& global_event_handlers_to_event_target(FlyString const&) override { return *this; } + virtual void did_receive_focus() override; JS::GCPtr m_dataset;