diff --git a/Userland/Libraries/LibWeb/UIEvents/PointerEvent.cpp b/Userland/Libraries/LibWeb/UIEvents/PointerEvent.cpp index d810087c979..150b09c3e0e 100644 --- a/Userland/Libraries/LibWeb/UIEvents/PointerEvent.cpp +++ b/Userland/Libraries/LibWeb/UIEvents/PointerEvent.cpp @@ -25,6 +25,7 @@ PointerEvent::PointerEvent(JS::Realm& realm, FlyString const& type, PointerEvent , m_azimuth_angle(event_init.azimuth_angle.value_or(0)) , m_pointer_type(event_init.pointer_type) , m_is_primary(event_init.is_primary) + , m_persistent_device_id(event_init.persistent_device_id) { } diff --git a/Userland/Libraries/LibWeb/UIEvents/PointerEvent.h b/Userland/Libraries/LibWeb/UIEvents/PointerEvent.h index 5c6189121de..df93ff48ff2 100644 --- a/Userland/Libraries/LibWeb/UIEvents/PointerEvent.h +++ b/Userland/Libraries/LibWeb/UIEvents/PointerEvent.h @@ -24,6 +24,7 @@ struct PointerEventInit : public MouseEventInit { Optional azimuth_angle; String pointer_type; bool is_primary { false }; + WebIDL::Long persistent_device_id { 0 }; }; // https://w3c.github.io/pointerevents/#pointerevent-interface @@ -49,6 +50,7 @@ public: double azimuth_angle() const { return m_azimuth_angle; } String const& pointer_type() const { return m_pointer_type; } bool is_primary() const { return m_is_primary; } + WebIDL::Long persistent_device_id() const { return m_persistent_device_id; } // https://w3c.github.io/pointerevents/#dom-pointerevent-pressure // For hardware and platforms that do not support pressure, the value MUST be 0.5 when in the active buttons state and 0 otherwise. @@ -119,6 +121,10 @@ private: // Indicates if the pointer represents the primary pointer of this pointer type // https://w3c.github.io/pointerevents/#dom-pointerevent-isprimary bool m_is_primary { false }; + + // A unique identifier for the pointing device. + // https://w3c.github.io/pointerevents/#dom-pointerevent-persistentdeviceid + WebIDL::Long m_persistent_device_id { 0 }; }; } diff --git a/Userland/Libraries/LibWeb/UIEvents/PointerEvent.idl b/Userland/Libraries/LibWeb/UIEvents/PointerEvent.idl index b99851848a9..e2b056182fa 100644 --- a/Userland/Libraries/LibWeb/UIEvents/PointerEvent.idl +++ b/Userland/Libraries/LibWeb/UIEvents/PointerEvent.idl @@ -1,5 +1,6 @@ #import +// https://w3c.github.io/pointerevents/#ref-for-dom-pointereventinit-1 dictionary PointerEventInit : MouseEventInit { long pointerId = 0; double width = 1; @@ -13,6 +14,7 @@ dictionary PointerEventInit : MouseEventInit { double azimuthAngle; DOMString pointerType = ""; boolean isPrimary = false; + long persistentDeviceId = 0; // FIXME: sequence coalescedEvents = []; // FIXME: sequence predictedEvents = []; }; @@ -33,6 +35,7 @@ interface PointerEvent : MouseEvent { readonly attribute double azimuthAngle; readonly attribute DOMString pointerType; readonly attribute boolean isPrimary; + readonly attribute long persistentDeviceId; [FIXME, SecureContext] sequence getCoalescedEvents(); [FIXME] sequence getPredictedEvents(); };