mod compositor; mod xdg_shell; // // Wl Seat use smithay::input::{SeatHandler, SeatState}; use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface; use smithay::wayland::data_device::{ ClientDndGrabHandler, DataDeviceHandler, ServerDndGrabHandler, }; use smithay::{delegate_data_device, delegate_output, delegate_seat}; use crate::Niri; impl SeatHandler for Niri { type KeyboardFocus = WlSurface; type PointerFocus = WlSurface; fn seat_state(&mut self) -> &mut SeatState { &mut self.seat_state } fn cursor_image( &mut self, _seat: &smithay::input::Seat, _image: smithay::input::pointer::CursorImageStatus, ) { } fn focus_changed(&mut self, _seat: &smithay::input::Seat, _focused: Option<&WlSurface>) {} } delegate_seat!(Niri); // // Wl Data Device // impl DataDeviceHandler for Niri { type SelectionUserData = (); fn data_device_state(&self) -> &smithay::wayland::data_device::DataDeviceState { &self.data_device_state } } impl ClientDndGrabHandler for Niri {} impl ServerDndGrabHandler for Niri {} delegate_data_device!(Niri); // // Wl Output & Xdg Output // delegate_output!(Niri);