Nie programowałem X11 przez ponad dekadę, więc wybaczcie, jeśli źle zrobię.
Uważam, że można rejestrować zdarzenia ruchów myszy w oknach. Jeśli zajmujesz się takim zdarzeniem, przechowując uchwyt okna w jakiejś zmiennej lub innym, a następnie obsługując zdarzenie, aby nie przenikał on drzewa, wtedy w momencie, w którym chcesz zidentyfikować okno, możesz po prostu zapytać zmienną.
To jednak zadziała tylko wtedy, gdy mysz znajduje się nad oknem, do którego zarejestrowałeś odpowiedni program obsługi zdarzeń, więc nie będziesz wiedział o oknach należących do innych aplikacji - chyba że istnieje sposób na rejestrację zdarzeń na innych ludziach okna, które mogą być możliwe.
Zaletą drugiej odpowiedzi jest to, że nie trzeba przechodzić przez całe drzewo. Wadą jest to, że musisz poradzić sobie z wieloma zdarzeniami ruchu myszy i może nie działać, aby znaleźć okna innych osób.
Sądzę, że mogą również występować zdarzenia myszy i zdarzeń opuszczania myszy, co zmniejszy ilość wymaganego przetwarzania.
na przykład tutaj: http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_ACRO_SUP/XWINSYS.PDF –
Myślałem o książkach Adrian Nye (XLib Programming Manual, XLib Reference Manual) O'Reilly, ta seria była moją biblią w moich dniach X11/Motif. –