L'azienda Canonical ha presentato il rilascio di Mir 2.26.0 — la nuova versione del compositore e del set di librerie per la creazione di shell e ambienti grafici basati su Wayland.
Wayland e nuovi protocolli
- Aggiunta l'implementazione MVP del protocollo ext-input-triggers (V1).
- Realizzato un abbozzo del protocollo ext-input-triggers per la gestione dei trigger di input in Wayland. Questa funzionalità è considerata privilegiata e non è inclusa per impostazione predefinita.
- Aggiornato il file di specifiche ext-input-trigger-action-v1.xml: sono state aggiunte chiarificazioni sulla validità e disponibilità dei token.
- Aggiunto implementazione parziale di ext_image_copy_capture_v1 per le sessioni del cursore.
- Implementato trasmissione dell'immagine del cursore tramite ext_image_copy_capture_v1.
Rust e sviluppo dell'architettura
- Iniziata l'implementazione del frontend di Wayland in Rust.
- Proseguita la lavorazione sulla piattaforma di input basata su Rust. Non è ancora il percorso principale per la gestione degli input, ma rappresenta già un passo pratico verso l'integrazione graduale di Rust nel progetto.
Sottosistema di input: evdev-rs
- Implementato il supporto per gli eventi tattili (touch events).
- Pulito il codice del modulo device.
- 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 ripensata per migliorare la chiarezza e la manutenibilità del codice.
Cursori, finestre, API e infrastruttura interna
- Per CursorObservers è stata aggiunta la possibilità di monitorare le modifiche dell'immagine del cursore.
- Componente CursorObserverMultiplexer ora invia lo stato iniziale ai nuovi osservatori registrati.
- È stata eseguita una refactoring MinimalWindowManager.
- È stata aggiunta la possibilità di per impostare il canale alpha delle finestre e ottenerlo tramite WindowInfo.
- Sono stati aggiunti alla libreria libmiral clauses requires, che migliora la rigorosità delle restrizioni a livello di codice C++ generico.
- È stata completata la migrazione degli API di logging e dei valori predefiniti in mircore.
- La chiamata a strerror() è stata sostituita con strerror_r() thread-safe.
Correzioni di bug
- È stato corretto un errore in 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 l'errore: la riproduzione video a schermo intero in Google Chrome potrebbe non funzionare se la finestra non era già in modalità 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 errore in cui la verifica di DRM_CLIENT_CAP_ATOMIC eseguito tramite una chiamata ioctl errata.
- Pulizia e miglioramento della logica eseguiti mgk::find_crtc_with_primary_plane.
- Comportamento di occlusione corretto: se una superficie ha un'area opaca, ma il suo alpha non è uguale a 1.0, non dovrebbe più essere utilizzata come completamente sovrapposta.
Altro
- Segnalato un aumento del 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à attorno a Mir.
Fonte: linux.org.ru
