/* Testcase for: Cursor warping To compile: gcc -Wall -o test-warp test-warp.c `pkg-config --cflags --libs gtk+-2.0 glib-2.0` To use: X -multiwindow & export DISPLAY=:0 ./test-warp Press 'Warp' button, cursor should move elsewhere */ #include #include #include GtkWidget *main_window; static void warp_cursor( GtkWidget *widget, gpointer data ) { Display *dpy = GDK_DISPLAY(); XWarpPointer(dpy, None, None, 0,0,0,0, +100,+100); } static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } int main( int argc, char *argv[] ) { GtkWidget *button; gtk_init (&argc, &argv); main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_decorated (GTK_WINDOW(main_window), TRUE); g_signal_connect (G_OBJECT (main_window), "destroy", G_CALLBACK (destroy), NULL); gtk_container_set_border_width (GTK_CONTAINER (main_window), 10); button = gtk_button_new_with_label ("Warp"); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (warp_cursor), NULL); gtk_container_add (GTK_CONTAINER (main_window), button); gtk_widget_show (button); gtk_widget_show (main_window); gtk_main (); return 0; }