; Module/File: GdkSetMousePos.pb ; Function: Set the mouse postion (desktop coordinates) - Linux ; Author: Omi ; Date: Feb. 11, 2016 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.31/5.4x ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit ImportC "" gdk_device_manager_get_client_pointer(*device_manager); Gtk3 gdk_device_warp(*device.GdkDevice, *screen.GdkScreen, x, y); Gtk3 gdk_display_get_default() gdk_display_get_device_manager(*display.GdkDisplay); Gtk3 gdk_display_warp_pointer(*display.GdkDisplay, *screen.GdkScreen, x, y); Gtk2 gdk_screen_get_default() ; gtk_get_current_event_device() EndImport ; Object constants #MainWin = 0 #Bt1 = 0 #Bt2 = 1 Global.i gEvent, gQuit Procedure SetMousePos(x, y) ;also usable with gtk3 within event callbacks ... ; gdk_device_warp (gtk_get_current_event_device(), gdk_screen_get_default(), x, y) ;gtk2, but still works ... gdk_display_warp_pointer(gdk_display_get_default(), gdk_screen_get_default(), x, y) ;gtk3 ... ; gdk_device_warp(gdk_device_manager_get_client_pointer(gdk_display_get_device_manager(gdk_display_get_default())), gdk_screen_get_default(), x, y) EndProcedure If OpenWindow(#MainWin, 300, 200, 315, 100, "Mouse warp", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ButtonGadget(#Bt1, 5, 5, 150, 26, "Jump to Button 2") ButtonGadget(#Bt2, 160, 5, 150, 26, "Jump to Button 1") Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True Case #PB_Event_Gadget Select EventGadget() Case #Bt1 SetMousePos(GadgetX(#Bt2, #PB_Gadget_ScreenCoordinate)+10, GadgetY(#Bt2, #PB_Gadget_ScreenCoordinate)+10) Case #Bt2 SetMousePos(GadgetX(#Bt1, #PB_Gadget_ScreenCoordinate)+10, GadgetY(#Bt1, #PB_Gadget_ScreenCoordinate)+10) EndSelect EndSelect Until gQuit EndIf ; IDE Options = PureBasic 5.42 LTS (Linux - x86) ; CursorPosition = 10 ; FirstLine = 36 ; Folding = - ; EnableUnicode ; EnableXP