Myriad Blog 1.3.0 Thursday, Aug 16th, 2018 at 06:08pm 

Friday, Feb 8th, 2013 at 04:56pm
Harmony 9.6 pour Linux

 
Le problème dans la gestion des fenêtres de la version Linux/GTK ont été identifiés. Nous sommes en train de chercher un contournement, et une version beta sera disponible très prochainement pour le tester.
 
Depuis nos débuts de développement sur Linux, nous nous heurtons à des problèmes importants liés à la gestion des fenêtres.  
Les systèmes de fenêtrage "modernes" que nous avions vu jusqu'alors étaient structurés ainsi :
- Au plus bas niveau, un gestionnaire d'aires traçables à l'écran
Il gère le tracé sur des zones de l'écran
- Au-dessus, le système de fenêtrage proprement dit.
Il gère le tracé des aires système des fenêtres, leur chevauchement et mise à jour
- Au-dessus encore, l'application elle-même, qui a accès aux deux couches basses.
 
Ainsi l'application a la maîtrise de ses fenêtres. Elle peut y tracer dessus, modifier leur forme, gérer les empilages et chevauchements, et gérer les clics.
 
Sur Linux, ce n'est pas structuré ainsi.
 
En couche basse, X-Windows, qui est déjà extrèmement complexe. Il gère les fenêtres, leur empilement, le clic, même le glisser-déposer de fichier.
 
Au-dessus, GTK qui gère l'apparence des zones système des fenêtres, et se contente essentiellement de rendre accessibles certaines des fonctions X-Windows.
 
Il n'y a donc plus d'accès aux "couches basses" du système de fenêtrage. Des requètes sont envoyées par l'application à GTK, qui les transmet à X-Window, qui les honorera *peut-être*, dans un délai *indéterminé*.
 
On se contente donc de suggérer au système de fenêtrage que telle fenêtre devrait être agrandie, devrait passer devant l'autre, etc. De plus, la mise au premier plan de la fenêtre cliquée semble automatique. Elle passe donc devant les palettes, sans qu'il soit possible de définir, comme sur MacOS ou Windows, des classes de fenêtres, chaque classe ayant une priorité d'empilement par rapport aux autres classes, et l'ordre d'empilement des fenêtres dans chaque classe étant géré par le programme.
 
Nous avons donc galéré, sur Linux, et bricolé une solution. Mais il s'avère que sur certaines versions d'Ubuntu, lorsque beaucoup de palettes sont ouvertes, le programme ralentit considérablement.  
Nous avons heureusement trouvé une nouvelle fonction, très peu documentée et ajoutée à GTK en urgence entre 2 versions majeures, qui nous permet d'obtenir un résultat un peu moins agréable graphiquement, mais bien plus rapide. A tester maintenant sur toutes les distrib et leurs diverses versions.
by Olivier Guillion
Comments

Comment from Olivier Guillion Monday, Feb 11th, 2013 at 04:52pm
@Danièl
Oui, j'ai vu, mais je ne sais pas comment ils font.  
Peut-être utilisent-il la dernière version de GTK, et que celle-ci permet de faire plus de choses ?

Comment from Danièl Monday, Feb 11th, 2013 at 09:40am
Fenêtres
Bonjour Olivier, pourtant il doit bien y avoir un moyen, si je regarde par exemple le logiciel de dessin GIMP sous Linux, il y a bien les palettes d'outils qui sont toujours au premier plan...
Amistats, Danièl.


Most recent first
Oldest first

Top of page
Legal information Last update:  (c) Myriad