--- src/spice-widget.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/spice-widget.c b/src/spice-widget.c index 17cda84..7ebd5f1 100644 --- a/src/spice-widget.c +++ b/src/spice-widget.c @@ -1113,6 +1113,24 @@ static void try_mouse_grab(SpiceDisplay *display) d->mouse_last_y = -1; } +static void spice_display_warp_pointer(SpiceDisplay *display, + GdkScreen *screen, + gint x, + gint y) +{ +#if GTK_CHECK_VERSION(3, 20, 0) + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gdk_device_warp(gdk_seat_get_pointer(spice_display_get_default_seat(display)), + screen, + x, y); + G_GNUC_END_IGNORE_DEPRECATIONS +#else + gdk_display_warp_pointer(gtk_widget_get_display(GTK_WIDGET(display)), + screen, + x, y); +#endif +} + static void mouse_wrap(SpiceDisplay *display, GdkEventMotion *motion) { SpiceDisplayPrivate *d = display->priv; @@ -1136,11 +1154,7 @@ static void mouse_wrap(SpiceDisplay *display, GdkEventMotion *motion) /* FIXME: we try our best to ignore that next pointer move event.. */ gdk_display_sync(gdk_screen_get_display(screen)); - /* FIXME: gdk_display_warp_pointer() is deprecated */ - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - gdk_display_warp_pointer(gtk_widget_get_display(GTK_WIDGET(display)), - screen, xr, yr); - G_GNUC_END_IGNORE_DEPRECATIONS + spice_display_warp_pointer(display, screen, xr, yr); d->mouse_last_x = -1; d->mouse_last_y = -1; } @@ -1179,9 +1193,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS y + d->mouse_guest_y * s, &x, &y); - gdk_display_warp_pointer(gtk_widget_get_display(GTK_WIDGET(display)), - gtk_widget_get_screen(GTK_WIDGET(display)), - x, y); + spice_display_warp_pointer(display, gtk_widget_get_screen(GTK_WIDGET(display)), x, y); g_signal_emit(display, signals[SPICE_DISPLAY_MOUSE_GRAB], 0, false); spice_gtk_session_set_pointer_grabbed(d->gtk_session, false); -- 2.11.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel