Lexique informatique › Programmation › WM_CLIENT_LEADER

WM_CLIENT_LEADER

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

La propriété ICCCM qui pointe vers la fenêtre leader d'un programme, la seule à porter l'identifiant de session, pour que le gestionnaire de session sache quelles fenêtres appartiennent au même programme.

Un programme peut avoir cinq fenêtres de premier niveau, mais un gestionnaire de session veut une commande par programme, pas par fenêtre. L'ICCCM 2.0 a réglé la question en 1994, dans le même élan que XSMP : chaque client désigne une fenêtre leader, de préférence invisible et jamais mappée, y pose SM_CLIENT_ID avec l'identifiant remis par le gestionnaire de session, et pose WM_CLIENT_LEADER sur chacune de ses fenêtres de premier niveau, leader comprise, avec l'identifiant de la fenêtre leader. Le chemin d'une fenêtre à la bonne commande de relance tient donc en deux consultations. Pour que le gestionnaire de fenêtres puisse remettre la bonne fenêtre au bon endroit après un redémarrage, chaque fenêtre a aussi reçu WM_WINDOW_ROLE, une chaîne qui distingue la fenêtre principale de la boîte de préférences.

GTK et Qt font tout cela à l'insu du programmeur : GDK crée une fenêtre leader invisible par affichage, qui porte aussi WM_CLASS, et xprop sur à peu près n'importe quelle fenêtre GTK montre WM_CLIENT_LEADER(WINDOW): window id # 0x…. Les gestionnaires de fenêtres ont réemployé la propriété comme marqueur de groupe : KWin rassemble dans la barre des tâches les fenêtres ayant le même leader, en plus de l'ancien groupe de WM_HINTS. Le volet session sert peu, car peu de programmes réagissent raisonnablement à SaveYourself ; la propriété vit surtout sa seconde vie. Wayland a remplacé les deux par app_id, une chaîne par fenêtre de premier niveau, sans identifiant de session.

← Retour au lexique