diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-21 17:50:28 +0100 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-21 17:50:28 +0100 |
| commit | 30ae4be181c4b65cd7d006041364f1642db9d837 (patch) | |
| tree | a74d60a332bce8f3baecc7aa0c76129588faa630 /src/events/Misc.cpp | |
| parent | 546fff6aa69db5722638cb79a3f3aebc75fde0c9 (diff) | |
added drag and drop functionality
barebones but functioning
Diffstat (limited to 'src/events/Misc.cpp')
| -rw-r--r-- | src/events/Misc.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/events/Misc.cpp b/src/events/Misc.cpp index 812db15d..f31ca3b9 100644 --- a/src/events/Misc.cpp +++ b/src/events/Misc.cpp @@ -63,4 +63,20 @@ void Events::listener_readyXWayland(wl_listener* listener, void* data) { } xcb_disconnect(XCBCONNECTION); +} + +void Events::listener_requestDrag(wl_listener* listener, void* data) { + const auto E = (wlr_seat_request_start_drag_event*)data; + + if (!wlr_seat_validate_pointer_grab_serial(g_pCompositor->m_sWLRSeat, E->origin, E->serial)) { + Debug::log(LOG, "Ignoring drag and drop request: serial mismatch."); + wlr_data_source_destroy(E->drag->source); + return; + } + + wlr_seat_start_pointer_drag(g_pCompositor->m_sWLRSeat, E->drag, E->serial); +} + +void Events::listener_startDrag(wl_listener* listener, void* data) { + // TODO: draw the drag icon }
\ No newline at end of file |
