Compania Canonical a lansat versiunea Mir 2.26.0 - o nouă versiune a compozitorului și a setului de biblioteci pentru construirea shell-urilor și mediilor grafice bazate pe Wayland.
Wayland și noi protocoale
- A fost adăugată o implementare MVP a protocolului ext-input-triggers (V1).
- A fost implementat un draft al protocolului ext-input-triggers pentru procesarea declanșatoarelor de intrare în Wayland. Această funcționalitate este considerată privilegiată și nu este activată în mod implicit.
- Fișierul de specificație a fost actualizat ext-input-trigger-action-v1.xml: au fost adăugate precizări cu privire la validitatea și disponibilitatea token-urilor.
- Adăugat implementare parțială a ext_image_copy_capture_v1 pentru sesiuni de cursor.
- Implementată transmiterea imaginii cursorului prin ext_image_copy_capture_v1.
Rust și dezvoltarea arhitecturii
- A început implementarea frontend-ului Wayland pe Rust.
- A fost continuată lucrările la platforma de intrare bazată pe Rust. Aceasta nu este încă calea principală de procesare a intrării, dar reprezintă un pas practic către integrarea treptată a Rust în proiect.
Subsystema de intrare: evdev-rs
- A fost implementat suportul pentru evenimentele de atingere (touch events).
- Codul modulului device a fost curățat.
- A fost corectată procesarea evenimentelor de dispozitive de pointer: starea butoanelor a fost mutată în stocarea la nivel de dispozitive individuale.
- Logica de procesare a evenimentelor a fost refăcută pentru a îmbunătăți claritatea și întreținerea codului.
Cursor, feronier, API și infrastructura internă
- Pentru CursorObservers a fost adăugată capacitatea de a urmări schimbările imaginii cursorului.
- Componentă CursorObserverMultiplexer acum trimite starea inițială către noii observatori înregistrați.
- A avut loc un refactoring MinimalWindowManager.
- A fost adăugată posibilitatea de a seta canalul alpha al feronierului și de a-l obține prin WindowInfo.
- Au fost adăugate în șabloanele libmiral clauze requires, ceea ce îmbunătățește strictețea constrângerilor la nivelul codului șablon C++.
- A fost efectuat transferul API-urilor de logging și a valorilor implicite în mircore.
- Apelul strerror() a fost înlocuit cu strerror_r() thread-safe.
Corecturi de erori
- A fost corectată o eroare care BasicXCBConnection::destroy_window a apelat xcb_map_window în loc de xcb_destroy_window.
- A fost eliminată problema care răspunsurile XCB nu erau întotdeauna eliberate.
- A fost corectată o eroare: redarea în modul fullscreen a videoclipurilor în Google Chrome ar putea să nu funcționeze, dacă fereastra nu era deja în modul fullscreen.
- Pentru X11 a fost adăugată o setare corectă pentru _NET_CLIENT_LIST_STACKING.
- A fost corectată o implementare nesigură fatal signal handling, ceea ce în versiune a fost denumit direct "wildly unsafe".
- A fost corectată o eroare în care verificarea DRM_CLIENT_CAP_ATOMIC era realizată printr-un apel ioctl greșit.
- A avut loc o curățare și îmbunătățire a logicii mgk::find_crtc_with_primary_plane.
- Comportamentul de umbrire (occlusion) a fost corectat: dacă o suprafață are o zonă opacă, dar alpha sa nu este 1.0, aceasta nu ar trebui să mai fie utilizată ca fiind complet suprapusă.
Altele
- S-a observat o creștere a numărului de noi participanți la proiect: lansarea Mir 2.26.0 include contribuția mai multor noi veniți, ceea ce dezvoltatorii interpretează ca un semn al creșterii comunității din jurul Mir.
Sursa: linux.org.ru
