L'azienda Canonical ha presentato il rilascio di Mir 2.26.0 — una nuova versione del compositore e della libreria per la creazione di shell e ambienti grafici basati su Wayland.
Wayland e nuovi protocolli
- È stata aggiunta l'implementazione MVP del protocollo ext-input-triggers (V1).
- È stato realizzato un draft del protocollo ext-input-triggers per gestire i trigger di input in Wayland. Questa funzionalità è considerata privilegiata e non è attivata per impostazione predefinita.
- Il file di specifica è stato aggiornato ext-input-trigger-action-v1.xml: sono state aggiunte precisazioni sulla validità e disponibilità dei token.
- È stata aggiunta implementazione parziale di ext_image_copy_capture_v1 per le sessioni del cursor.
- supporto per l'interfaccia trasmissione dell'immagine del cursore tramite ext_image_copy_capture_v1.
Rust e sviluppo dell'architettura
- Iniziata l'implementazione del frontend Wayland in Rust.
- È proseguito il lavoro sulla piattaforma di input basata su Rust. Questo non è ancora il percorso principale per la gestione degli input, ma rappresenta già un passo pratico verso una graduale integrazione di Rust nel progetto.
Sottosistema di input: evdev-rs
- È stata implementata la supporto per gli eventi touch.
- Il codice del modulo device è stato ripulito.
- È stata corretta la gestione degli eventi dei dispositivi puntatori: lo stato dei pulsanti è stato spostato nella memoria a livello di singoli dispositivi.
- La logica di gestione degli eventi è stata rielaborata per migliorarne la chiarezza e la manutenibilità del codice.
Cursore, finestre, API e infrastruttura interna
- Per CursorObservers è stata aggiunta la possibilità di monitorare le modifiche all'immagine del cursore.
- Componente CursorObserverMultiplexer ora invia lo stato iniziale ai nuovi osservatori registrati.
- È stata effettuata una ristrutturazione MinimalWindowManager.
- È stata aggiunta la possibilità per impostare il canale alpha delle finestre e ottenerlo tramite WindowInfo.
- Aggiornamenti ai template di libmiral richiedono clausole, migliorando la severità dei vincoli a livello di codice template C++.
- È stato eseguito il trasferimento di logging APIs e valori di default in mircore.
- La chiamata a strerror() è stata sostituita con strerror_r() thread-safe.
Correzioni di bug
- È stato corretto un bug per cui BasicXCBConnection::destroy_window chiamava xcb_map_window invece di xcb_destroy_window.
- È stato risolto un problema per cui le risposte XCB non venivano sempre liberate.
- È stato corretto un bug: la riproduzione di video a schermo intero su Google Chrome poteva non funzionare se la finestra non era già in modalità a schermo intero.
- Per X11 è stata aggiunta una corretta impostazione di _NET_CLIENT_LIST_STACKING.
- È stata corretta l'implementazione non sicura di gestione dei segnali fatali, che nella release è stata definita "wildly unsafe".
- È stato corretto un bug per cui il controllo di DRM_CLIENT_CAP_ATOMIC veniva eseguito tramite una chiamata ioctl errata.
- È stata eseguita una pulizia e un miglioramento della logica mgk::find_crtc_with_primary_plane.
- Corretto il comportamento di ombreggiamento (occlusion): se una superficie ha un'area opaca ma il suo alpha non è uguale a 1.0, non deve più essere utilizzata come completamente coprente.
Altro
- Segnalato un aumento nel numero di nuovi partecipanti al progetto: il rilascio di Mir 2.26.0 include il contributo di diversi neofiti, che gli sviluppatori interpretano come un segno di crescita della comunità intorno a Mir.
Fonte: linux.org.ru
