From 7f45a9e9c1ae40e7077a2a661738192832fdc13e Mon Sep 17 00:00:00 2001 From: Igor Pissolati Date: Sat, 9 Apr 2022 12:45:05 -0300 Subject: [PATCH] LibWeb: Add "which" attribute to UIEvent This is non-standard but is supported by all major browsers. --- Userland/Libraries/LibWeb/UIEvents/KeyboardEvent.h | 2 ++ Userland/Libraries/LibWeb/UIEvents/MouseEvent.h | 2 ++ Userland/Libraries/LibWeb/UIEvents/UIEvent.h | 1 + Userland/Libraries/LibWeb/UIEvents/UIEvent.idl | 2 ++ 4 files changed, 7 insertions(+) diff --git a/Userland/Libraries/LibWeb/UIEvents/KeyboardEvent.h b/Userland/Libraries/LibWeb/UIEvents/KeyboardEvent.h index 3276d54cec9..0901fb44b90 100644 --- a/Userland/Libraries/LibWeb/UIEvents/KeyboardEvent.h +++ b/Userland/Libraries/LibWeb/UIEvents/KeyboardEvent.h @@ -58,6 +58,8 @@ public: bool get_modifier_state(String const& key_arg); + virtual u32 which() const override { return m_key_code; } + private: KeyboardEvent(FlyString const& event_name, KeyboardEventInit const& event_init) : UIEvent(event_name, event_init) diff --git a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h index 53186672838..bfacfcd106a 100644 --- a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h +++ b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h @@ -45,6 +45,8 @@ public: i16 button() const { return m_button; } + virtual u32 which() const override { return m_button + 1; } + private: MouseEvent(FlyString const& event_name, MouseEventInit const& event_init); diff --git a/Userland/Libraries/LibWeb/UIEvents/UIEvent.h b/Userland/Libraries/LibWeb/UIEvents/UIEvent.h index 4da9382559c..9be4446a615 100644 --- a/Userland/Libraries/LibWeb/UIEvents/UIEvent.h +++ b/Userland/Libraries/LibWeb/UIEvents/UIEvent.h @@ -35,6 +35,7 @@ public: HTML::Window const* view() const { return m_view; } int detail() const { return m_detail; } + virtual u32 which() const { return 0; } void init_ui_event(String const& type, bool bubbles, bool cancelable, HTML::Window* view, int detail) { diff --git a/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl b/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl index 94431c183fd..36e4a8885ab 100644 --- a/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl +++ b/Userland/Libraries/LibWeb/UIEvents/UIEvent.idl @@ -7,6 +7,8 @@ interface UIEvent : Event { // NOTE: This is "deprecated, but supported for backwards-compatibility with widely-deployed implementations." [ImplementedAs=init_ui_event] undefined initUIEvent(DOMString typeArg, optional boolean bubblesArg = false, optional boolean cancelableArg = false, optional Window? viewArg = null, optional long detailArg = 0); + + readonly attribute unsigned long which; }; dictionary UIEventInit : EventInit {