refactor: use icon type when starting dnd

This commit is contained in:
Ashley Wulber 2024-03-27 18:28:59 -04:00
parent 5bfbaae180
commit 42a888736b
No known key found for this signature in database
GPG key ID: 5216D4F46A90A820
5 changed files with 43 additions and 9 deletions

View file

@ -1,6 +1,6 @@
use std::{borrow::Cow, ffi::c_void, sync::Arc};
use crate::{DataWrapper, DndAction, DndSurface};
use crate::{DataWrapper, DndAction, DndSurface, Icon};
use smithay_clipboard::mime::{AllowedMimeTypes, AsMimeTypes, MimeType};
impl<
@ -87,3 +87,25 @@ impl From<DndAction>
a
}
}
impl From<Icon> for smithay_clipboard::dnd::Icon<DndSurface> {
fn from(icon: Icon) -> Self {
match icon {
Icon::Surface(surface) => {
smithay_clipboard::dnd::Icon::Surface(surface)
}
Icon::Buffer {
data,
width,
height,
transparent,
} => smithay_clipboard::dnd::Icon::Buf {
data: Arc::try_unwrap(data)
.unwrap_or_else(|d| d.as_ref().clone()),
width,
height,
transparent,
},
}
}
}