Léxico TI › Programación › _NET_ACTIVE_WINDOW

_NET_ACTIVE_WINDOW

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

La propiedad de la ventana raíz que señala la ventana activa, y el mensaje con el que una barra de tareas o un programa pide cambiarla, con un campo que delata quién lo pidió.

Antes de EWMH, X no tenía el concepto de "ventana activa", solo el foco de teclado, y cualquier cliente podía moverlo con XSetInputFocus. No bastaba: la ventana podía estar en otro escritorio virtual, iconificada o enterrada bajo otras tres, y tener el foco en una ventana invisible no es lo que nadie entiende por activa. EWMH puso por eso _NET_ACTIVE_WINDOW en la ventana raíz, escrita por el gestor de ventanas y con el ID de la ventana que él considera activa, o None si no hay ninguna. Las barras de tareas resaltan su botón a partir de ella, y xdotool getactivewindow se limita a leerla.

En sentido contrario viaja un ClientMessage del mismo tipo hacia la ventana raíz: activa esta ventana. El gestor cambia entonces de escritorio, desiconifica, eleva y da el foco, o se niega. Desde la versión 1.3 el mensaje lleva una indicación de origen: 1 significa que lo pide el propio programa, 2 que lo hace un paginador o una barra de tareas por encargo del usuario, y 0 que el remitente es antiguo y no sabe más. Junto con la marca de tiempo del campo siguiente, ese es el material de la prevención del robo de foco: un clic en el panel pasa, y un programa que quiere colarse a mitad de frase tiene que conformarse con parpadear. wmctrl -a y xdotool windowactivate envían exactamente este mensaje, que es lo que los distingue de windowfocus, que solo pone el foco y deja el resto al azar.

← Volver al léxico