2010-12-08 22 views
7

¿cómo puedo establecer el cursor del mouse en una ventana X en C en Linux con pantallas múltiples? Tengo 2 monitores (con resolución diferente) conectados a una única PC Linux. Utilicé ": 0.1" para dirigirse al segundo monitor. Ejecuto la aplicación desde el monitor 1 manteniendo el mouse en el monitor 1 también ... como resultado el mouse se mueve pero no salta en el monitor 2. Si coloco manualmente el cursor del mouse en el monitor 2 y ejecuto la aplicación desde el monitor 1, el mouse se mueve.Posición del cursor del mouse en C en el sistema de pantalla múltiple

Necesito una forma de mover el cursor entre los monitores.

#include "Xlib.h" 
int main() { 
    int delta_x = 5, delta_y = 5; 
    Display *display = XOpenDisplay(":0.1"); 
    // move pointer relative to current position 
    XWarpPointer(display, None, None, 0, 0, 0, 0, delta_x, delta_y); 
    XCloseDisplay(display); 
} 

Respuesta

4

lo necesario para pasar el identificador de la ventana raíz de la pantalla que desea mover el puntero a:

root = RootWindow(display, screennumber); 
    XWarpPointer(display, None, root, 0, 0, 0, 0, x, y); 

No es un ejemplo completo de trabajo C aquí:

http://www.ishiboo.com/~danny/Projects/xwarppointer/

que puede ser de utilidad :)

Cuestiones relacionadas