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:

X11: Jak NAPRAWDĘ chwycić wskaźnik myszy?

questionAnswers(2)

yourAnswerToTheQuestion