diff --git a/Libraries/LibWeb/Internals/Internals.cpp b/Libraries/LibWeb/Internals/Internals.cpp index 0d4bd0269b2..fb2914923c5 100644 --- a/Libraries/LibWeb/Internals/Internals.cpp +++ b/Libraries/LibWeb/Internals/Internals.cpp @@ -124,6 +124,18 @@ void Internals::click(double x, double y, UIEvents::MouseButton button) page.handle_mouseup(position, position, button, 0, 0); } +void Internals::mouse_down(double x, double y) +{ + mouse_down(x, y, UIEvents::MouseButton::Primary); +} + +void Internals::mouse_down(double x, double y, UIEvents::MouseButton button) +{ + auto& page = internals_page(); + auto position = page.css_to_device_point({ x, y }); + page.handle_mousedown(position, position, button, 0, 0); +} + void Internals::move_pointer_to(double x, double y) { auto& page = internals_page(); diff --git a/Libraries/LibWeb/Internals/Internals.h b/Libraries/LibWeb/Internals/Internals.h index 0b2770b3946..56dc5e2a015 100644 --- a/Libraries/LibWeb/Internals/Internals.h +++ b/Libraries/LibWeb/Internals/Internals.h @@ -32,6 +32,7 @@ public: void click(double x, double y); void doubleclick(double x, double y); void middle_click(double x, double y); + void mouse_down(double x, double y); void move_pointer_to(double x, double y); void wheel(double x, double y, double delta_x, double delta_y); @@ -59,6 +60,7 @@ private: virtual void initialize(JS::Realm&) override; void click(double x, double y, UIEvents::MouseButton); + void mouse_down(double x, double y, UIEvents::MouseButton); HTML::Window& internals_window() const; Page& internals_page() const; diff --git a/Libraries/LibWeb/Internals/Internals.idl b/Libraries/LibWeb/Internals/Internals.idl index c39a71c7b61..64a2994a655 100644 --- a/Libraries/LibWeb/Internals/Internals.idl +++ b/Libraries/LibWeb/Internals/Internals.idl @@ -23,6 +23,7 @@ interface Internals { undefined click(double x, double y); undefined doubleclick(double x, double y); undefined middleClick(double x, double y); + undefined mouseDown(double x, double y); undefined movePointerTo(double x, double y); undefined wheel(double x, double y, double deltaX, double deltaY);