Pour autant que je sache, il n'existe pas de façon standard de le faire. Si vous lisez la source à Metacity par exemple vous pouvez voir qu'elle conserve cette taille non maximisée dans l'objet MetaWindow mais je ne pense pas qu'elle soit stockée dans une propriété, et je ne vois pas de propriété pour cela dans les spécifications EWMH ou ICCCM .
Il est possible que certains gestionnaires de fenêtres spécifiques le stockent dans une propriété non standard. Quand une fenêtre est agrandie, vous pouvez obtenir un événement de changement de propriété avec le drapeau de maximisation (libwnck est une ancienne bibliothèque pour suivre ce genre de chose, peut-être y en a-t-il une plus récente). Cependant, je doute qu'il est défini si le redimensionnement se produit avant ou après le réglage du drapeau. Vous pourriez peut-être supposer de manière heuristique qu'un redimensionnement couvrant la plus grande partie de l'écran dans la seconde suivant la définition du drapeau de maximisation était un hachage maximal ou similaire. Cela dit, je pense que le moyen le plus simple d'obtenir cette fonctionnalité est de l'implémenter comme une extension ou un plugin de gestionnaire de fenêtres, que de nombreux WM supportent d'une manière ou d'une autre.
Il existe une spécification ancienne pour cela (protocole de gestion de session X) malheureusement la spécification est ridiculement brisée, peu claire et essentiellement impossible à mettre en œuvre. Un problème de base qui n'a jamais été abordé - et qui nécessite probablement une coopération entre les applications - est de savoir comment reconnaître la «même» fenêtre à travers les redémarrages afin de restaurer sa taille. Il n'y a que des heuristiques imparfaites pour cela.
(j'ai écrit metacity et a travaillé sur un gestionnaires de session couple il y a longtemps si une fois que je vous aurais dit beaucoup plus, mais j'ai oublié beaucoup de détails.)
Pouvez-vous nous montrer votre code et affiner votre question un peu? Parce que maintenant ce que vous demandez est trop large pour être utile. –
Rappelez-vous la géométrie chaque fois qu'elle change alors qu'elle n'est pas agrandie. De cette façon, vous connaissez la géométrie la plus récente avant qu'elle ne soit agrandie. –
Est-ce que je vous comprends correctement, il n'y a aucun moyen de l'obtenir à partir de gestionnaire de fenêtres similaire à GetWindowPlacement() dans Windows et j'ai besoin de suivre les changements. Mais le gestionnaire de fenêtres peut définir les propriétés de maximisation avant ou après la modification de la taille. Puis-je compter sur des propriétés de maximisation déjà définies lorsque la taille de la fenêtre change en raison de la maximisation? – PineForestRanch