Léxico TI › Programación › WM_STATE

WM_STATE

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

La propiedad que el gestor de ventanas fija en una ventana cliente para indicar en qué estado está, y que en la práctica se convirtió en el comprobante de que una ventana es, siquiera, un programa de verdad.

La mayoría de las propiedades ICCCM las escribe el programa y las lee el gestor de ventanas. WM_STATE va en sentido contrario. Cuando el gestor ha adoptado una ventana de nivel superior, normalmente envolviéndola en un marco propio, fija la propiedad con dos campos: el estado y el ID de la ventana de icono, si la hay. Los estados son WithdrawnState (0), NormalState (1) e IconicState (3). El hueco en el 2 no es un error: ZoomState e InactiveState (4) aparecían en los primeros borradores y quedaron en Xutil.h marcados como obsoletos, donde siguen. Si el programa quiere cambiar de estado, lo pide enviando WM_CHANGE_STATE a la ventana raíz, y si quiere desaparecer del todo desmapea su ventana y envía un UnmapNotify sintético para que el gestor sepa que fue a propósito.

El efecto secundario acabó pesando más que el propósito. Como solo las ventanas cliente gestionadas llevan WM_STATE, la propiedad es la forma más sencilla de distinguir la ventana real de la aplicación del marco que la rodea y de todas las ventanas auxiliares del árbol. xprop, xdotool, wmctrl y la _NET_CLIENT_LIST de EWMH localizan a los clientes buscándola. Una ventana sin WM_STATE bajo un gestor en marcha es, por tanto, un menú, un marco o un programa que nadie ha adoptado.

← Volver al léxico