aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-08-15 16:40:54 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-08-15 16:40:54 +0400
commit162c74c259910cc889efab2c3c6e8aa3f62c99c2 (patch)
treec7b2417b16ae767946126ac6c82e03b87bf5c2f3 /src/handlers
parent2465bba0858662d45ea1e5a321c6fbe11036d99f (diff)
downloadniri-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.rs23
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);