diff options
Diffstat (limited to 'src/handlers/mod.rs')
| -rw-r--r-- | src/handlers/mod.rs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs new file mode 100644 index 00000000..bc2cd23f --- /dev/null +++ b/src/handlers/mod.rs @@ -0,0 +1,54 @@ +mod compositor; +mod xdg_shell; + +use crate::Smallvil; + +// +// 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}; + +impl SeatHandler for Smallvil { + type KeyboardFocus = WlSurface; + type PointerFocus = WlSurface; + + fn seat_state(&mut self) -> &mut SeatState<Smallvil> { + &mut self.seat_state + } + + fn cursor_image( + &mut self, + _seat: &smithay::input::Seat<Self>, + _image: smithay::input::pointer::CursorImageStatus, + ) { + } + fn focus_changed(&mut self, _seat: &smithay::input::Seat<Self>, _focused: Option<&WlSurface>) {} +} + +delegate_seat!(Smallvil); + +// +// Wl Data Device +// + +impl DataDeviceHandler for Smallvil { + type SelectionUserData = (); + fn data_device_state(&self) -> &smithay::wayland::data_device::DataDeviceState { + &self.data_device_state + } +} + +impl ClientDndGrabHandler for Smallvil {} +impl ServerDndGrabHandler for Smallvil {} + +delegate_data_device!(Smallvil); + +// +// Wl Output & Xdg Output +// + +delegate_output!(Smallvil); |
