Reputation: 838
I am trying to get the pointer position on screen in Gdk and found gdk_display_get_pointer()
, which works fine, but it's marked as deprecated and refers to gdk_device_get_position()
now.
But how do I use this function? I cannot get a GdkDevice
, since there is no factory, nor is there a constructor.
Upvotes: 7
Views: 2960
Reputation: 6791
Since GTK+ 3.20+, luciomrx's answer becomes:
GdkDisplay* display = gdk_display_get_default();
GdkSeat* seat = gdk_display_get_default_seat(display);
GdkDevice* pointer = gdk_seat_get_pointer(seat);
Upvotes: 6
Reputation: 1195
use Gdk.DeviceManager.
.....
.....
GdkDisplay *display = gdk_display_get_default ();
GdkDeviceManager *device_manager = gdk_display_get_device_manager (display);
GdkDevice *device = gdk_device_manager_get_client_pointer (device_manager);
// do whatever with Gdk.Device, i.e:
int x, y;
gdk_device_get_position (device, NULL, &x, &y);
printf ("x= %d, y=%d", x,y);
Upvotes: 9