La société Canonical a présenté la version 2.26.0 de Mir — une nouvelle version du compositeur et de la bibliothèque pour créer des environnements de bureau et des interfaces graphiques basées sur Wayland.
Wayland et nouveaux protocoles
- Ajout de la mise en œuvre MVP du protocole ext-input-triggers (V1).
- Ébauche du protocole réalisée ext-input-triggers pour le traitement des déclencheurs d'entrée dans Wayland. Cette fonctionnalité est considérée comme privilégiée et n'est pas activée par défaut.
- Fichier de spécifications mis à jour ext-input-trigger-action-v1.xml: des précisions sur la validité et l'accessibilité des jetons ont été ajoutées.
- Ajouté mise en œuvre partielle de ext_image_copy_capture_v1 pour les sessions de curseur.
- Mise en œuvre de transmission de l'image du curseur via ext_image_copy_capture_v1.
Rust et l'évolution de l'architecture
- Lancement de la mise en œuvre du frontend Wayland en Rust.
- Le travail sur la plate-forme d'entrée basée sur Rust a été poursuivi. Ce n'est pas encore le chemin principal du traitement des entrées, mais déjà un pas pratique vers l'intégration progressive de Rust dans le projet.
Sous-système d'entrée : evdev-rs
- Prise en charge des événements tactiles (touch events) mise en œuvre.
- Le code du module device a été nettoyé.
- Traitement des événements des dispositifs de pointage corrigé : l'état des boutons a été transféré dans le stockage au niveau des dispositifs individuels.
- La logique de traitement des événements a été révisée pour améliorer la clarté et la maintenabilité du code.
Curseur, fenêtres, API et infrastructure interne
- Pour CursorObservers ajout de la possibilité de suivre les changements de l'image du curseur.
- Composant CursorObserverMultiplexer envoie maintenant l'état initial aux nouveaux observateurs enregistrés.
- Refactorisation effectuée MinimalWindowManager.
- Ajout de la possibilité permet de définir le canal alpha de la fenêtre et de le récupérer via WindowInfo.
- Ajout des clauses requires, ce qui améliore la rigueur des contraintes au niveau du code C++ template.
- Migration effectuée des API de journalisation et des valeurs par défaut vers mircore.
- L'appel à strerror() a été remplacé par strerror_r() thread-safe.
Corrections de bogues
- Correction d'un bug où BasicXCBConnection::destroy_window appelait xcb_map_window plutôt que xcb_destroy_window.
- Problème résolu où les réponses XCB n'étaient pas toujours libérées.
- Correction d'un bug : la lecture vidéo en mode plein écran dans Google Chrome pouvait ne pas fonctionner si la fenêtre n'était pas déjà en mode plein écran.
- Pour X11, ajout d'une installation correcte de _NET_CLIENT_LIST_STACKING.
- Correction d'une mise en œuvre non sécurisée de la gestion des signaux fatals, qui a été qualifiée dans la version de « très non sécurisée ».
- Correction d'un bug où la vérification de DRM_CLIENT_CAP_ATOMIC était réalisée par un appel ioctl incorrect.
- Nettoyage effectué et amélioration de la logique mgk::find_crtc_with_primary_plane.
- Comportement d'occlusion corrigé : si une surface a une zone opaque, mais que son alpha n'est pas égal à 1.0, elle ne doit plus être utilisée comme totalement recouvrante.
Autre
- Une augmentation du nombre de nouveaux participants au projet a été notée : la version Mir 2.26.0 contient des contributions de plusieurs nouveaux venus, ce que les développeurs interprètent comme un signe de croissance de la communauté autour de Mir.
Source : linux.org.ru
