use smithay::reexports::wayland_server::{ protocol::{ wl_data_device::{ Request::{Release, SetSelection, StartDrag}, WlDataDevice, }, wl_data_device_manager::{ Request::{CreateDataSource, GetDataDevice}, WlDataDeviceManager, }, wl_data_source::{ Request::{Destroy, Offer, SetActions}, WlDataSource, }, }, Client, DataInit, Dispatch, DisplayHandle, GlobalDispatch, New, Resource, }; use super::state::WaylandState; impl GlobalDispatch for WaylandState { fn bind( _state: &mut WaylandState, _handle: &DisplayHandle, _client: &Client, resource: New, _global_data: &(), data_init: &mut DataInit<'_, WaylandState>, ) { let _resource = data_init.init(resource, ()); } } impl Dispatch for WaylandState { fn request( _state: &mut WaylandState, _client: &Client, _resource: &WlDataDeviceManager, request: ::Request, _data: &(), _dhandle: &DisplayHandle, data_init: &mut DataInit<'_, WaylandState>, ) { match request { CreateDataSource { id } => { data_init.init(id, ()); } GetDataDevice { id, seat: _ } => { data_init.init(id, ()); } _ => unreachable!(), } } } impl Dispatch for WaylandState { fn request( _state: &mut WaylandState, _client: &Client, _resource: &WlDataSource, request: ::Request, _data: &(), _dhandle: &DisplayHandle, _data_init: &mut DataInit<'_, WaylandState>, ) { match request { Offer { mime_type: _ } => {} Destroy => {} SetActions { dnd_actions: _ } => {} _ => unreachable!(), } } } impl Dispatch for WaylandState { fn request( _state: &mut WaylandState, _client: &Client, _resource: &WlDataDevice, request: ::Request, _data: &(), _dhandle: &DisplayHandle, _data_init: &mut DataInit<'_, WaylandState>, ) { match request { StartDrag { source: _, origin: _, icon: _, serial: _, } => {} SetSelection { source: _, serial: _, } => {} Release => {} _ => unreachable!(), } } }