Gerd Hoffmann <kra...@redhat.com> writes: >>> +static void gd_mouse_set(DisplayChangeListener *dcl, >>> + int x, int y, int visible) >>> +{ >>> + /* should warp pointer to x, y here */ >> >> This is just a matter of doing: >> >> gdk_window_get_root_coords(window, x, y, &x_root, &y_root); >> gdk_display_warp_pointer(display, screen, x_root, y_root); > > Thanks. > >>> + cursor = gdk_cursor_new_from_pixbuf(gdk_display_get_default(), >> >> You should get the display from the drawing_area widget. > > Yea, couldn't find the function which does this though.
gtk_widget_get_display(s->drawing_area) for both GTK2/GTK3. I don't think this will play all that nicely with GTK3 and multiple input devices but I can't think of a better way. The notion of a guest initiated cursor warp doesn't really make sense with multiple input devices I think. Regards, Anthony Liguori > >>> + pixbuf, c->hot_x, c->hot_y); >>> + gdk_window_set_cursor(s->drawing_area->window, cursor); >>> + g_object_unref(pixbuf); >> >> You should also dereference the cursor here. > > Will fix. > > cheers, > Gerd