projects/shelled/rustdesk-as-ref/flutter/linux/bump_mouse_x11.cc
2026-04-06 12:04:19 -07:00

31 lines
628 B
C++

#include "bump_mouse.h"
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <iostream>
bool bump_mouse_x11(int dx, int dy)
{
GdkDevice *mouse_device;
#if GTK_CHECK_VERSION(3, 20, 0)
auto seat = gdk_display_get_default_seat(gdk_display_get_default());
mouse_device = gdk_seat_get_pointer(seat);
#else
auto devman = gdk_display_get_device_manager(gdk_display_get_default());
mouse_device = gdk_device_manager_get_client_pointer(devman);
#endif
GdkScreen *screen;
gint x, y;
gdk_device_get_position(mouse_device, &screen, &x, &y);
gdk_device_warp(mouse_device, screen, x + dx, y + dy);
return true;
}