В соответствии с Руководством по программированию Xlib на tronche.com :
Если переопределение-перенаправление окна имеет значение False и если какой-либо другой клиент выбрал SubstructureRedirectMask в родительском окнезатем X-сервер генерирует событие MapRequest, а функция XMapWindow () не отображает окно.В противном случае окно отображается и X-сервер генерирует событие MapNotify.
Я включил SubstructureRedirectMask
в корневом окне, но я не трогал переопределение перенаправления для любого окна, которым я управляю, поэтому я думаю, что переопределение перенаправления каждого окна должно быть ложным (значение по умолчанию - false).
XSelectInput(dpy_, root_, SubstructureNotifyMask | SubstructureRedirectMask);
Тем не менее, Я получаю XMapRequestEvent
только при первом сопоставлении окна ;все последующие вызовы XMapWindow () не генерируют такое событие.
Но я ожидаю этого события при каждом вызове XMapWindow (), что я делаю не так?
Мой исходный код можно найти здесь: https://github.com/aesophor/Wmderland/blob/master/src/wm.cc#L204