diff --git a/winit-wayland/src/types/wp_tablet_input_v2.rs b/winit-wayland/src/types/wp_tablet_input_v2.rs index e7f9830cb..6ac1eaf1e 100644 --- a/winit-wayland/src/types/wp_tablet_input_v2.rs +++ b/winit-wayland/src/types/wp_tablet_input_v2.rs @@ -21,6 +21,13 @@ use sctk::reexports::protocols::wp::tablet::zv2::client::zwp_tablet_tool_v2::{ ButtonState, Event as ToolEvent, Type as ToolType, ZwpTabletToolV2, }; use sctk::reexports::protocols::wp::tablet::zv2::client::zwp_tablet_v2::ZwpTabletV2; +use wayland_protocols::wp::tablet::zv2::client::zwp_tablet_pad_dial_v2::ZwpTabletPadDialV2; +use wayland_protocols::wp::tablet::zv2::client::zwp_tablet_pad_group_v2::{ + self, ZwpTabletPadGroupV2, +}; +use wayland_protocols::wp::tablet::zv2::client::zwp_tablet_pad_ring_v2::ZwpTabletPadRingV2; +use wayland_protocols::wp::tablet::zv2::client::zwp_tablet_pad_strip_v2::ZwpTabletPadStripV2; +use wayland_protocols::wp::tablet::zv2::client::zwp_tablet_pad_v2; use winit_core::event::{ ButtonSource, ElementState, Force, PointerKind, PointerSource, TabletToolButton, TabletToolData as CoreTabletToolData, TabletToolKind, TabletToolTilt, WindowEvent, @@ -324,6 +331,10 @@ impl Dispatch for TabletManager { } impl Dispatch for TabletManager { + event_created_child!(WinitState, ZwpTabletPadV2, [ + zwp_tablet_pad_v2::EVT_GROUP_OPCODE => (ZwpTabletPadGroupV2, Default::default()), + ]); + fn event( _: &mut WinitState, _: &ZwpTabletPadV2, @@ -335,9 +346,67 @@ impl Dispatch for TabletManager { } } +impl Dispatch for TabletManager { + event_created_child!(WinitState, ZwpTabletPadGroupV2, [ + zwp_tablet_pad_group_v2::EVT_RING_OPCODE => (ZwpTabletPadRingV2, Default::default()), + zwp_tablet_pad_group_v2::EVT_STRIP_OPCODE => (ZwpTabletPadStripV2, Default::default()), + zwp_tablet_pad_group_v2::EVT_DIAL_OPCODE => (ZwpTabletPadDialV2, Default::default()), + ]); + + fn event( + _: &mut WinitState, + _: &ZwpTabletPadGroupV2, + _: ::Event, + _: &(), + _: &Connection, + _: &QueueHandle, + ) { + } +} + +impl Dispatch for TabletManager { + fn event( + _: &mut WinitState, + _: &ZwpTabletPadRingV2, + _: ::Event, + _: &(), + _: &Connection, + _: &QueueHandle, + ) { + } +} + +impl Dispatch for TabletManager { + fn event( + _: &mut WinitState, + _: &ZwpTabletPadStripV2, + _: ::Event, + _: &(), + _: &Connection, + _: &QueueHandle, + ) { + } +} + +impl Dispatch for TabletManager { + fn event( + _: &mut WinitState, + _: &ZwpTabletPadDialV2, + _: ::Event, + _: &(), + _: &Connection, + _: &QueueHandle, + ) { + } +} + delegate_dispatch!(WinitState: [ZwpTabletManagerV2: GlobalData] => TabletManager); delegate_dispatch!(WinitState: [ZwpTabletManagerV2: ()] => TabletManager); delegate_dispatch!(WinitState: [ZwpTabletSeatV2: ()] => TabletManager); delegate_dispatch!(WinitState: [ZwpTabletV2: ()] => TabletManager); delegate_dispatch!(WinitState: [ZwpTabletToolV2: TabletToolData] => TabletManager); delegate_dispatch!(WinitState: [ZwpTabletPadV2: ()] => TabletManager); +delegate_dispatch!(WinitState: [ZwpTabletPadGroupV2: ()] => TabletManager); +delegate_dispatch!(WinitState: [ZwpTabletPadRingV2: ()] => TabletManager); +delegate_dispatch!(WinitState: [ZwpTabletPadStripV2: ()] => TabletManager); +delegate_dispatch!(WinitState: [ZwpTabletPadDialV2: ()] => TabletManager);