From db0519ddc1559ea2048c4444d409b2bec8c51225 Mon Sep 17 00:00:00 2001 From: Shannon Booth Date: Sun, 7 Apr 2024 19:52:39 +0200 Subject: [PATCH] LibWeb: Fire a pointer event on synthetic clicks --- .../Text/expected/HTML/HTMLElement-click.txt | 1 + .../LibWeb/Text/input/HTML/HTMLElement-click.html | 15 +++++++++++++++ Userland/Libraries/LibWeb/HTML/HTMLElement.cpp | 5 ++--- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 Tests/LibWeb/Text/expected/HTML/HTMLElement-click.txt create mode 100644 Tests/LibWeb/Text/input/HTML/HTMLElement-click.html diff --git a/Tests/LibWeb/Text/expected/HTML/HTMLElement-click.txt b/Tests/LibWeb/Text/expected/HTML/HTMLElement-click.txt new file mode 100644 index 00000000000..2b669cb07b4 --- /dev/null +++ b/Tests/LibWeb/Text/expected/HTML/HTMLElement-click.txt @@ -0,0 +1 @@ + Event: PointerEvent diff --git a/Tests/LibWeb/Text/input/HTML/HTMLElement-click.html b/Tests/LibWeb/Text/input/HTML/HTMLElement-click.html new file mode 100644 index 00000000000..1258c11d400 --- /dev/null +++ b/Tests/LibWeb/Text/input/HTML/HTMLElement-click.html @@ -0,0 +1,15 @@ + + + diff --git a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp index 72db0e0e96e..617005531ea 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLElement.cpp @@ -381,8 +381,7 @@ bool HTMLElement::fire_a_synthetic_pointer_event(FlyString const& type, DOM::Ele { // 1. Let event be the result of creating an event using PointerEvent. // 2. Initialize event's type attribute to e. - // FIXME: Actually create a PointerEvent! - auto event = UIEvents::MouseEvent::create(realm(), type); + auto event = UIEvents::PointerEvent::create(realm(), type); // 3. Initialize event's bubbles and cancelable attributes to true. event->set_bubbles(true); @@ -419,7 +418,7 @@ void HTMLElement::click() // 3. Set this element's click in progress flag. m_click_in_progress = true; - // FIXME: 4. Fire a synthetic pointer event named click at this element, with the not trusted flag set. + // 4. Fire a synthetic pointer event named click at this element, with the not trusted flag set. fire_a_synthetic_pointer_event(HTML::EventNames::click, *this, true); // 5. Unset this element's click in progress flag.