Gestionnaire de fenêtres re-parenteur

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Un gestionnaire de fenêtres re-parenteur (re-parenting window manager en anglais) est un gestionnaire de fenêtres pour le système X Window qui adopte toutes les autres fenêtres.

Dans le système X Window, chaque fenêtre a une fenêtre parente, qui peut être soit la fenêtre racine ou une autre fenêtre. Les fenêtres qui sont des descendantes directes de la fenêtre racine sont appelées fenêtre de premier ordre (traduction libre de top-level windows en anglais). Quand une fenêtre de premier ordre est créée, un gestionnaire de fenêtre re-parenteur change sa parente pour une nouvelle fenêtre créée à cet effet. Cela permet au gestionnaire de fenêtre d'ajouter autour des fenêtres une bordure et un bandeau supérieur, et permet aussi un contrôle avancé des fenêtres, comme pour les gestionnaires de fenêtres virtuelles (exemple : FVWM).

Techniquement, un gestionnaire de fenêtre re-parenteur fait la requête auprès du serveur X pour recevoir comme notifications lorsque des fenêtres de premier ordre sont mappées (c'est-à-dire qu'elles deviennent visibles). Lorsque cet événement est transmis, le gestionnaire de fenêtre crée une fenêtre-cadre, et dans la plupart des cas un bandeau supérieur également. Cette fenêtre-cadre est alors faite parente de la fenêtre du logiciel, et aussi du bandeau supérieur le cas échéant. Toutes les formes de décoration allant avec la bordure et le bandeau supérieur de la fenêtre, comme le titre, les icônes (pour réduire, fermer la fenêtre), et le style général, sont alors également dessiné à ce moment. Tous ces éléments sont en général parentés par la barre de titre de la fenêtre[1].

Pratiquement tous les gestionnaires de fenêtres modernes sont de type re-parenteur. De plus anciens comme UWM ne l'étaient pas. Il existe des exceptions parmi les plus récents comme Awesome, xmonad, PLWM et Ratpoison en raison de l'absence de toute forme d'encadrement des fenêtres qu'ils gèrent.

Références[modifier | modifier le code]