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?
#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;
}
Związane z: