Léxico TI › Programación › SubstructureRedirect

SubstructureRedirect

Programación Svenska → Actualizado: 2026-10-07

La máscara de eventos de X11 que convierte a un cliente corriente en gestor de ventanas: el servidor deja de ejecutar las peticiones de ventana de los demás programas y se las entrega a ese cliente.

El protocolo X de 1987 se negó a decidir dónde van las ventanas, pero dejó un gancho. El cliente que selecciona SubstructureRedirectMask sobre una ventana, en la práctica la ventana raíz, recibe redirigido todo intento de otros clientes de mostrar, mover, redimensionar o reapilar sus hijas, en forma de eventos MapRequest, ConfigureRequest y CirculateRequest. En pantalla no ocurre nada hasta que el gestor de ventanas ejecuta él mismo la petición, modificada o no, o la ignora. Ahí reside todo el poder: envolver la ventana en un marco (reparenting), obligarla a quedarse dentro del escritorio o impedir que crezca más que la pantalla son solo respuestas distintas al mismo evento.

El servidor admite exactamente un cliente por ventana. Un segundo gestor que intente seleccionar la máscara recibe BadAccess, y de ahí viene el mensaje "another window manager is already running". SubstructureNotifyMask es la hermana pasiva que solo informa de lo ocurrido. Las ventanas override-redirect, como menús y tooltips, se saltan todo el mecanismo. Wayland no tiene equivalente porque el compositor es el servidor, y por eso el gestor de ventanas ya no es algo que se cambie.

← Volver al léxico