From e8875a319950947f830e30d4bae1b89cbdb28e08 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Sat, 28 Feb 2026 14:43:32 +0100 Subject: [PATCH] wl_data_device_manager: implement version 4 --- docs/features.md | 2 +- src/ifs/ipc/wl_data_device_manager.rs | 7 ++++++- wire/wl_data_device_manager.txt | 3 +++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/features.md b/docs/features.md index f6f7726d..86b0ba7f 100644 --- a/docs/features.md +++ b/docs/features.md @@ -167,7 +167,7 @@ Jay supports the following wayland protocols: | jay_tray_v1 | 1 | | | org_kde_kwin_server_decoration_manager | 1 | | | wl_compositor | 6 | | -| wl_data_device_manager | 3 | | +| wl_data_device_manager | 4 | | | wl_drm | 2 | | | wl_fixes | 1 | | | wl_output | 4 | | diff --git a/src/ifs/ipc/wl_data_device_manager.rs b/src/ifs/ipc/wl_data_device_manager.rs index 2acefb2a..d4c12b54 100644 --- a/src/ifs/ipc/wl_data_device_manager.rs +++ b/src/ifs/ipc/wl_data_device_manager.rs @@ -81,6 +81,11 @@ impl WlDataDeviceManagerRequestHandler for WlDataDeviceManager { self.client.add_client_obj(&dev)?; Ok(()) } + + fn release(&self, _req: Release, _slf: &Rc) -> Result<(), Self::Error> { + self.client.remove_obj(self)?; + Ok(()) + } } global_base!( @@ -95,7 +100,7 @@ impl Global for WlDataDeviceManagerGlobal { } fn version(&self) -> u32 { - 3 + 4 } } diff --git a/wire/wl_data_device_manager.txt b/wire/wl_data_device_manager.txt index 814c4436..b3e25530 100644 --- a/wire/wl_data_device_manager.txt +++ b/wire/wl_data_device_manager.txt @@ -6,3 +6,6 @@ request get_data_device { id: id(wl_data_device) (new), seat: id(wl_seat), } + +request release (destructor, since = 4) { +}