Como saber qual janela tem foco e como alterá-la?

Eu gostaria de saber como posso perguntar ao X11 quais janelas estão em foco. E se, por alguma razão, meu próprio aplicativo (que pode estar visível ou não) tiver o foco, desejo permitir que as janelas antigas fiquem focalizadas novamente.

Por exemplo, meu aplicativo está sendo executado com muitos outros (por exemplo, firefox, gvim, nautilus, ...)

Suponha que no primeiro firefox tenha foco e que o usuário tenha clicado no meu aplicativo que agora tem o foco. Eu quero que meu aplicativo coloque o foco no Firefox novamente.

Alguém sabe como conseguir isso? Recomendações de livros seria muito bom.

Muito obrigado.

questionAnswers(4)

yourAnswerToTheQuestion