Есть класс QApplication. Если задать в нем свой x11EventFilter то я могу видеть некоторые X11 события/сообщения... Проблема в том что некоторые сообщения не приходят вообще (это я знаю наверняка, так как есть другая программа, в которую они приходят).
http://tronche.com/gui/x/xlib/events/structure-control/map.html Тут написано, что «To receive MapRequest events, set the SubstructureRedirectMask bit in the event-mask attribute of the window». Вопрос: как это делается?
Анализируя программу, в которой это сообщение приходит (она тоже написана на Qt), я обнаружил, что все запросы, в которых фигурирует SubstructureRedirectMask - все проходят с ошибкой и если их удалить - то... сообщение MapRequest все равно приходит, т.е. от этих обращений нет толка. И лишь простой вызов этой функции QApplication::desktop()->winId() в этой программе активирует прием сообщения MapRequest... Чудеса...
Вопрос: как заставить программу на Qt принимать абсолютно все сообщения X11 которые появляются на X сервере?