Skip to content

Commit 5eeff37

Browse files
ids1024Drakulix
authored andcommitted
Send dmabuf feedback for dnd icon surface, and cursor surface
1 parent 726994b commit 5eeff37

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/state.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -826,6 +826,50 @@ impl Common {
826826
.iter()
827827
.filter(|seat| &seat.active_output() == output)
828828
{
829+
let cursor_status = seat.cursor_image_status();
830+
831+
if let CursorImageStatus::Surface(wl_surface) = cursor_status {
832+
if let Some(feedback) =
833+
advertised_node_for_surface(&wl_surface, &self.display_handle)
834+
.and_then(|source| dmabuf_feedback(source))
835+
{
836+
send_dmabuf_feedback_surface_tree(
837+
&wl_surface,
838+
output,
839+
surface_primary_scanout_output,
840+
|surface, _| {
841+
select_dmabuf_feedback(
842+
surface,
843+
render_element_states,
844+
&feedback.render_feedback,
845+
&feedback.scanout_feedback,
846+
)
847+
},
848+
);
849+
}
850+
}
851+
852+
if let Some(icon) = get_dnd_icon(seat) {
853+
if let Some(feedback) =
854+
advertised_node_for_surface(&icon.surface, &self.display_handle)
855+
.and_then(|source| dmabuf_feedback(source))
856+
{
857+
send_dmabuf_feedback_surface_tree(
858+
&icon.surface,
859+
output,
860+
surface_primary_scanout_output,
861+
|surface, _| {
862+
select_dmabuf_feedback(
863+
surface,
864+
render_element_states,
865+
&feedback.render_feedback,
866+
&feedback.scanout_feedback,
867+
)
868+
},
869+
);
870+
}
871+
}
872+
829873
if let Some(move_grab) = seat.user_data().get::<SeatMoveGrabState>() {
830874
if let Some(grab_state) = move_grab.lock().unwrap().as_ref() {
831875
for (window, _) in grab_state.element().windows() {

0 commit comments

Comments
 (0)