Implement window_start_drag on Windows and Linux.

This commit is contained in:
Pāvels Nadtočajevs 2024-12-16 10:01:07 +02:00
parent 4364ed6ccd
commit 293be04ec8
9 changed files with 82 additions and 1 deletions

View file

@ -3338,6 +3338,22 @@ void WaylandThread::beep() const {
}
}
void WaylandThread::window_start_drag(DisplayServer::WindowID p_window_id) {
// TODO: Use window IDs for multiwindow support.
WindowState &ws = main_window;
SeatState *ss = wl_seat_get_seat_state(wl_seat_current);
if (ss && ws.xdg_toplevel) {
xdg_toplevel_move(ws.xdg_toplevel, ss->wl_seat, ss->pointer_data.button_serial);
}
#ifdef LIBDECOR_ENABLED
if (ws.libdecor_frame) {
libdecor_frame_move(ws.libdecor_frame, ss->wl_seat, ss->pointer_data.button_serial);
}
#endif
}
void WaylandThread::window_set_max_size(DisplayServer::WindowID p_window_id, const Size2i &p_size) {
// TODO: Use window IDs for multiwindow support.
WindowState &ws = main_window;