For brevity, only a single drag icon at a time is supported.
Co-authored-by: Leonardo Hernández Hernández <leohdz172@protonmail.com>
7QP2Q5MUDMETQEZD2FRAVIFPIFNURQDKWJ32LJCK3XJU56BCPFFAC FUZEZTLBNTVGUNLBGFLMVZOHLGMMHFPQD7USP4JYMGGVXBL2EUBQC AEOM6GBTSH3NGIN365GS5L2PAUUSXSMDPMYTGJPL7UDMHDWLYXSQC TOFCZFUYVBVEBHMKVG6G5MKCAEF2QCQ4GKMKGQUSJRLGLDZEJF4QC 7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC J6OSBEBQXZR5JZ5TOCCUPELBPUVEQULGCXURXLPY7WFYTDEQOU2AC S7RXJJZG4IEIVLPHEWFT5M2T3SRRO5US5SYBPXSYSWJJLXAKNNPAC LQPHYO7IIMLXHUD5IK657BO4BE3SGT5HYDRJDU5OFDF5YUXKIRTAC IIWDZCVWWDAJITIXQXCFIAF7Z46DTFV2FYCUYMS4P7JMP34A6BUQC 4QUF4MKRSB5LYYS5FSYTCDSIEMYIERI2BQZLRGJ3GIGVYCPJVEPAC MIZBQX6SKECIVNNGBF3LCR3IHXQVWQ5BJURMRSBNEVEUWFBH3MTQC Q2X3PNJKODBITH6W5ZNPJULJRQN6XJTEVYLEEBUXEAQTHIWUWPAAC 2GP4MXKEDQMZ7E6TCRSMV2AGN7HLEAHR3QEAC2QFCQQNPMNJSIHQC 7L3TU7JVWPBPHN7WF4TJ263BZ6BC3AYRRW6PULFUP5JZUGWWNUSAC NLOBELMSKHUSKSMPZ2QSDVIOJRGWV7HNXNIKZ55TMUCH7DI73TAAC }voidrequeststartdrag(struct wl_listener *listener, void *data){struct wlr_seat_request_start_drag_event *event = data;if (wlr_seat_validate_pointer_grab_serial(seat, event->origin,event->serial))wlr_seat_start_pointer_drag(seat, event->drag, event->serial);elsewlr_data_source_destroy(event->drag->source);
}voidstartdrag(struct wl_listener *listener, void *data){struct wlr_drag *drag = data;if (!drag->icon)return;drag->icon->data = wlr_scene_subsurface_tree_create(layers[LyrTop], drag->icon->surface);wlr_scene_node_raise_to_top(drag->icon->data);wl_signal_add(&drag->icon->events.destroy, &drag_icon_destroy);