События Xlib MapRequest принимаются только один раз? - PullRequest
0 голосов
/ 02 февраля 2019

В соответствии с Руководством по программированию 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

...