No he programado X11 por más de una década, así que perdónenme si me equivoco.
Creo que puede registrarse para los eventos de movimiento del mouse en sus ventanas. Si maneja dicho evento almacenando el identificador de ventana en alguna variable u otra, y luego manejando el evento para que no se filtre por el árbol, entonces en el momento que quiera identificar la ventana puede simplemente consultar la variable.
Sin embargo, esto solo funcionará cuando el mouse esté sobre una ventana para la que haya registrado un controlador de eventos adecuado, por lo que no sabrá qué ventanas pertenecen a otras aplicaciones, a menos que haya una forma de registrarse para eventos de otras personas ventanas que pueden ser posibles.
La ventaja sobre la otra respuesta es que no tiene que atravesar todo el árbol. La desventaja es que debe manejar un gran número de eventos de movimiento del mouse, y puede que no funcione para encontrar las ventanas de otras personas.
Creo que también puede haber eventos de mouse mouse y mouse leave que reducirían la cantidad de procesamiento requerido.
por ejemplo aquí: http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_ACRO_SUP/XWINSYS.PDF –
Estaba pensando en los libros de Adrian Nye (Manual de programación XLib, XLib Reference Manual) publicados por O'Reilly, esa serie fue mi biblia en mis días X11/Motif. –