IT-lexikon › Programmering › WM_TRANSIENT_FOR

WM_TRANSIENT_FOR

Programmering In English → Uppdaterad: 2026-10-07

ICCCM-egenskapen som pekar ut vilket huvudfönster en dialogruta hör till, så att fönsterhanteraren kan hålla den ovanpå och gömma den tillsammans med ägaren.

Ett "öppna fil"-fönster är inte ett program utan ett tillbehör till ett. X-protokollet vet inget om det; alla toppfönster är lika. Ett program som anropar XSetTransientForHint sätter WM_TRANSIENT_FOR till huvudfönstrets ID, och fönsterhanteraren får en ledtråd: dialogen ska ligga ovanför sin ägare i staplingen, centreras över den, ikonifieras när ägaren ikonifieras, hållas borta från aktivitetsfält och Alt+Tab, och behöver varken minimera- eller maximeraknapp. ICCCM lämnar det mesta till fönsterhanterarens omdöme, så dialoger beter sig lite olika under twm, Metacity och KWin.

EWMH byggde ut. Med _NET_WM_WINDOW_TYPE_DIALOG kan ett fönster förklara sig dialog utan ägare, och ett WM_TRANSIENT_FOR som pekar på rotfönstret betyder "transient för hela fönstergruppen": en startskärm eller ett felmeddelande som ska ligga över alla programmets fönster. Blir egenskapen fel går det snett på klassiskt vis: dialogen hamnar bakom sitt eget huvudfönster och programmet ser ut att ha hängt sig. Wayland har motsvarigheten xdg_toplevel.set_parent, med samma syfte och mindre tolkningsutrymme.

← Tillbaka till lexikonet