WM_TRANSIENT_FOR
La proprietà ICCCM che indica a quale finestra principale appartiene una finestra di dialogo, così che il window manager possa tenerla in primo piano e nasconderla insieme alla proprietaria.
Una finestra "apri file" non è un programma, ma un accessorio di uno. Il protocollo X non ne sa nulla: tutte le finestre di primo livello sono uguali. Un programma che chiama XSetTransientForHint imposta WM_TRANSIENT_FOR sull'ID della finestra principale, e il window manager riceve un suggerimento: il dialogo dovrebbe stare sopra la proprietaria nell'ordine di sovrapposizione, essere centrato rispetto a essa, venire ridotto a icona insieme a lei, restare fuori dalla barra delle applicazioni e da Alt+Tab, e non ha bisogno dei pulsanti di riduzione e ingrandimento. ICCCM lascia gran parte di tutto ciò al giudizio del window manager, perciò i dialoghi si comportano in modo leggermente diverso sotto twm, Metacity e KWin.
EWMH lo ha esteso. Con _NET_WM_WINDOW_TYPE_DIALOG una finestra può dichiararsi dialogo senza avere un proprietario, e un WM_TRANSIENT_FOR che punta alla finestra radice significa "transitoria per l'intero gruppo di finestre": una schermata iniziale o un messaggio d'errore pensati per stare sopra tutte le finestre del programma. Sbagliare la proprietà produce il guasto classico: il dialogo finisce dietro la propria finestra principale e il programma sembra bloccato. L'equivalente di Wayland è xdg_toplevel.set_parent, con lo stesso scopo e meno margine di interpretazione.