Lexique informatique › Programmation › WM_TRANSIENT_FOR

WM_TRANSIENT_FOR

Programmation Svenska → Mis à jour: 2026-10-07

La propriété ICCCM qui nomme la fenêtre principale à laquelle appartient une boîte de dialogue, pour que le gestionnaire de fenêtres la garde au-dessus et la masque avec son propriétaire.

Une fenêtre « ouvrir un fichier » n'est pas un programme mais l'accessoire d'un programme. Le protocole X n'en sait rien : toutes les fenêtres de premier niveau sont égales. Un programme qui appelle XSetTransientForHint fixe WM_TRANSIENT_FOR à l'identifiant de la fenêtre principale, et le gestionnaire de fenêtres reçoit un indice : la boîte doit se placer au-dessus de son propriétaire dans l'ordre d'empilement, être centrée dessus, être iconifiée avec lui, rester hors de la barre des tâches et d'Alt+Tab, et n'a besoin ni de bouton de réduction ni d'agrandissement. L'ICCCM laisse l'essentiel à l'appréciation du gestionnaire, de sorte que les boîtes de dialogue se comportent un peu différemment sous twm, Metacity et KWin.

L'EWMH l'a étendue. Avec _NET_WM_WINDOW_TYPE_DIALOG, une fenêtre peut se déclarer boîte de dialogue sans propriétaire, et un WM_TRANSIENT_FOR pointant vers la fenêtre racine signifie « transitoire pour tout le groupe de fenêtres » : un écran d'accueil ou un message d'erreur censé rester au-dessus de toutes les fenêtres du programme. Mal renseignée, la propriété produit l'échec classique : la boîte de dialogue passe derrière sa propre fenêtre principale et le programme semble planté. Le pendant de Wayland est xdg_toplevel.set_parent, au même but et avec moins de place pour l'interprétation.

← Retour au lexique