IT-словарь › Программирование › SubstructureRedirect

SubstructureRedirect

Программирование Svenska → Обновлено: 2026-10-20

Маска событий X11, превращающая обычного клиента в оконный менеджер: сервер перестаёт выполнять оконные запросы других программ и передаёт их этому клиенту.

Протокол X 1987 года отказался решать, где должны лежать окна, но оставил зацепку. Клиент, выбравший SubstructureRedirectMask для окна (на практике — для корневого окна), получает все попытки других клиентов показать, переместить, изменить размер или переупорядочить его дочерние окна в виде событий MapRequest, ConfigureRequest и CirculateRequest. На экране ничего не происходит, пока оконный менеджер сам не выполнит запрос, изменив его или нет, либо не проигнорирует. Вся власть сосредоточена здесь: обернуть окно в рамку (reparenting), загнать его на рабочий стол или не дать ему вырасти больше экрана — просто разные ответы на одно и то же событие.

Сервер допускает ровно одного такого клиента на окно. Второй оконный менеджер, пытающийся выбрать маску, получает BadAccess — отсюда сообщение «another window manager is already running». SubstructureNotifyMask — пассивный собрат, который только сообщает о случившемся. Окна override-redirect, такие как меню и подсказки, обходят весь механизм. В Wayland аналога нет, потому что композитор и есть сервер, и оконный менеджер больше не то, что можно просто заменить.

← Назад к словарю