Par contre les ombrages qui sont créées avec un logiciel comme compton, comme ça se passe ? Est-ce que c'est une fenêtre créée (pour avoir de la place pour faire l'ombre), avec ensuite l'application placée dedans en tant qu'enfant ?
Et ça me fait penser, un menu contextuel, est-ce aussi une sous-fenêtre de l'application ?
Je suis loin d'être un spécialiste de X, j'ai juste un peu bricolé avec Xlib, ce qui m'a permis de saisir certains mécanismes fondamentaux. Donc ce que je dis là est un peu au doigt mouillé, car la programmation X ne m'est pas franchement évidente* et j'ignore totalement la cuisine interne des toolkits qui sont au-dessus.
Pour l'ombre, ça dépend si elle c'est une propriété de ton WM. Si compton (que je ne connais pas) est a peu près la seule à faire ça, on ne peut pas parler de re-parenting. C'est la fenêtre de l'application, qui se dessine à l'intérieur comme elle veut (avec ou sans utiliser d'enfants, impossible à dire).
Pour le menu contextuel, c'est plus simple : l'enfant d'une fenêtre ne peut sortir de son parent. Si par ex. je réduis la fenêtre de firefox au maximum et que je fais clic-droit, le menu déborde du cadre, je suis donc sûr que ce n'est pas un enfant de la fenêtre principale. Je dirais donc dans ce cas-là que c'est une fenêtre de premier niveau (ie. un enfant de la fenêtre racine) créée avec l'attribut override_redirect, qui indique au WM de ne pas chercher à gérer cette fenêtre (c'est pourquoi elle se créée à l'endroit voulu, aux dimensions voulues et sans décoration autour).
* J'ai même un fichier qui commence par cette citation du Unix-Hater's Handbook : «Programming X Windows is like trying to find the square root of pi using roman numerals». C'est dire s'il est des choses qui m'échappent.
[^] # Re: Applications, toolkits, gestionnaires de fenêtres
Posté par Ignatz Ledebur . En réponse à la dépêche Le combat X contre Wayland : les faits vus par Eric Griffith. Évalué à 4.
Je suis loin d'être un spécialiste de X, j'ai juste un peu bricolé avec Xlib, ce qui m'a permis de saisir certains mécanismes fondamentaux. Donc ce que je dis là est un peu au doigt mouillé, car la programmation X ne m'est pas franchement évidente* et j'ignore totalement la cuisine interne des toolkits qui sont au-dessus.
Pour l'ombre, ça dépend si elle c'est une propriété de ton WM. Si compton (que je ne connais pas) est a peu près la seule à faire ça, on ne peut pas parler de re-parenting. C'est la fenêtre de l'application, qui se dessine à l'intérieur comme elle veut (avec ou sans utiliser d'enfants, impossible à dire).
Pour le menu contextuel, c'est plus simple : l'enfant d'une fenêtre ne peut sortir de son parent. Si par ex. je réduis la fenêtre de firefox au maximum et que je fais clic-droit, le menu déborde du cadre, je suis donc sûr que ce n'est pas un enfant de la fenêtre principale. Je dirais donc dans ce cas-là que c'est une fenêtre de premier niveau (ie. un enfant de la fenêtre racine) créée avec l'attribut override_redirect, qui indique au WM de ne pas chercher à gérer cette fenêtre (c'est pourquoi elle se créée à l'endroit voulu, aux dimensions voulues et sans décoration autour).
* J'ai même un fichier qui commence par cette citation du Unix-Hater's Handbook : «Programming X Windows is like trying to find the square root of pi using roman numerals». C'est dire s'il est des choses qui m'échappent.