przechwytywanie myszy za pomocą Xlib
Chcę napisać prosty program Xlib zmieniający zachowanie myszy (aby podać przykład, odwróć ruch pionowy). Mam problem z przechwytywaniem wydarzeń.
Chciałbym kod do
przechwytywanie zmian w pozycji kontrolerów (poruszam myszką w górę,MotionEvent
)oblicz nową pozycję kursora (new_x -= difference_x
)ustaw nową pozycję kursora (przesuń wskaźnik w dół,XWarpPointer
, zapobiegaj generowaniu zdarzeń tutaj)Poniższy kod powinien rejestrować zdarzenie ruchu za każdym razem, gdy mysz jest przesuwana, ale generuje zdarzenie tylko wtedy, gdy wskaźnik przesuwa się z jednego okna do drugiego ... Jak uchwycić wszystkie zdarzenia ruchu?
<code>#include "X11/Xlib.h" #include "stdio.h" int main(int argc, char *argv[]) { Display *display; Window root_window; XEvent event; display = XOpenDisplay(0); root_window = XRootWindow(display, 0); XSelectInput(display, root_window, PointerMotionMask ); while(1) { XNextEvent( display, &event ); switch( event.type ) { case MotionNotify: printf("x %d y %d\n", event.xmotion.x, event.xmotion.y ); break; } } return 0; } </code>
Związane z: