diff --git a/src/gui_beval.c b/src/gui_beval.c
index 258ba8a..9a945bc 100644
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -557,8 +557,13 @@ target_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
 		{
 		    GdkWindow * const win = gtk_widget_get_window(widget);
 		    GdkDisplay * const dpy = gdk_window_get_display(win);
+#  if GTK_CHECK_VERSION(3,20,0)
+		    GdkSeat * const seat = gdk_display_get_default_seat(dpy);
+		    GdkDevice * const dev = gdk_seat_get_pointer(seat);
+#  else
 		    GdkDeviceManager * const mngr = gdk_display_get_device_manager(dpy);
 		    GdkDevice * const dev = gdk_device_manager_get_client_pointer(mngr);
+#  endif
 		    gdk_window_get_device_position(win, dev , &x, &y, &state);
 		}
 # else
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 00196eb..77e84c1 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -1842,8 +1842,13 @@ gui_gtk_get_pointer_device(GtkWidget *widget)
 {
     GdkWindow * const win = gtk_widget_get_window(widget);
     GdkDisplay * const dpy = gdk_window_get_display(win);
+# if GTK_CHECK_VERSION(3,20,0)
+    GdkSeat * const seat = gdk_display_get_default_seat(dpy);
+    return gdk_seat_get_pointer(seat);
+# else
     GdkDeviceManager * const mngr = gdk_display_get_device_manager(dpy);
     return gdk_device_manager_get_client_pointer(mngr);
+# endif
 }
 
     static GdkWindow *
