diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-08-15 16:40:54 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-08-15 16:40:54 +0400 |
| commit | 162c74c259910cc889efab2c3c6e8aa3f62c99c2 (patch) | |
| tree | c7b2417b16ae767946126ac6c82e03b87bf5c2f3 /src/handlers | |
| parent | 2465bba0858662d45ea1e5a321c6fbe11036d99f (diff) | |
| download | niri-162c74c259910cc889efab2c3c6e8aa3f62c99c2.tar.gz niri-162c74c259910cc889efab2c3c6e8aa3f62c99c2.tar.bz2 niri-162c74c259910cc889efab2c3c6e8aa3f62c99c2.zip | |
Add dnd icon support
Diffstat (limited to 'src/handlers')
| -rw-r--r-- | src/handlers/mod.rs | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index cc80a841..b327a9e4 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -4,6 +4,7 @@ mod xdg_shell; use smithay::input::pointer::CursorImageStatus; use smithay::input::{Seat, SeatHandler, SeatState}; +use smithay::reexports::wayland_server::protocol::wl_data_source::WlDataSource; use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface; use smithay::reexports::wayland_server::Resource; use smithay::wayland::data_device::{ @@ -42,8 +43,28 @@ impl DataDeviceHandler for Niri { &self.data_device_state } } -impl ClientDndGrabHandler for Niri {} + +impl ClientDndGrabHandler for Niri { + fn started( + &mut self, + _source: Option<WlDataSource>, + icon: Option<WlSurface>, + _seat: Seat<Self>, + ) { + self.dnd_icon = icon; + // FIXME: more granular + self.queue_redraw_all(); + } + + fn dropped(&mut self, _seat: Seat<Self>) { + self.dnd_icon = None; + // FIXME: more granular + self.queue_redraw_all(); + } +} + impl ServerDndGrabHandler for Niri {} + delegate_data_device!(Niri); delegate_output!(Niri); |
