Léxico de TI › Programação › WM_TRANSIENT_FOR

WM_TRANSIENT_FOR

Programação Svenska → Atualizado: 2026-10-07

A propriedade do ICCCM que diz a qual janela principal um diálogo pertence, para que o gerenciador de janelas o mantenha por cima e o esconda junto com a dona.

Uma janela de "abrir arquivo" não é um programa, e sim um acessório de um. O protocolo X não sabe disso; todas as janelas de nível superior são iguais. Um programa que chama XSetTransientForHint define WM_TRANSIENT_FOR com o ID da janela principal, e o gerenciador de janelas recebe uma dica: o diálogo deve ficar acima da dona na ordem de empilhamento, centralizado sobre ela, ser minimizado quando ela for, ficar fora da barra de tarefas e do Alt+Tab, e dispensa botões de minimizar e maximizar. O ICCCM deixa a maior parte disso a critério do gerenciador, então os diálogos se comportam de forma um pouco diferente no twm, no Metacity e no KWin.

O EWMH estendeu a ideia. Com _NET_WM_WINDOW_TYPE_DIALOG, uma janela pode se declarar diálogo sem dona, e um WM_TRANSIENT_FOR apontando para a janela raiz significa "transiente para o grupo de janelas inteiro": uma splash screen ou mensagem de erro feita para ficar acima de todas as janelas do programa. Erre a propriedade e o defeito é clássico: o diálogo vai parar atrás da própria janela principal e o programa parece ter travado. O equivalente no Wayland é xdg_toplevel.set_parent, com o mesmo propósito e menos espaço para interpretação.

← Voltar ao léxico