Kugel
Kugel

Reputation: 838

How to use gdk_device_get_position()?

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

Answers (2)

Carlo Wood
Carlo Wood

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

luciomrx
luciomrx

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

Related Questions