capturar o mouse com o Xlib
Eu quero escrever um programa Xlib simples alterando o comportamento do mouse (para dar um exemplo, inverter o movimento vertical). Eu tenho um problema com a captura dos eventos.
Eu gostaria que o código
capturar alterações na posição dos controladores (movo o mouse para cima,MotionEvent
)calcular a nova posição do cursor (new_x -= difference_x
)definir a nova posição do cursor (mova o ponteiro para baixo,XWarpPointer
, impedir a geração de eventos aqui)O código abaixo deve capturar um evento de movimento toda vez que o mouse for movido, mas ele gera o evento somente quando o ponteiro se move de uma janela para outra ... Como capturar todos os eventos de movimento?
<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>
Relacionado: