Я хочу написать простую программу Xlib, изменяющую поведение мыши (, чтобы привести пример, инвертировать вертикальное движение ). У меня проблема с записью событий.
Я хочу, чтобы код
MotionEvent
)new_x -= difference_x
)XWarpPointer
, предотвратить генерацию событий здесь)Приведенный ниже код должен захватывать событие движения каждый раз, когда перемещается мышь, но генерирует событие только тогда, когда указатель перемещается из одного окна в другое... Как зафиксировать все события движения?
#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;
}
Связанные: