Dopo sei mesi di sviluppo, è stata pubblicata la versione del toolkit multipiattaforma per la creazione di interfacce grafiche utente — GTK 4.20. GTK 4 si evolve nell'ambito di un processo di sviluppo che mira a fornire agli sviluppatori di applicazioni un API stabile e supportato per diversi anni, utilizzabile senza timore di dover riscrivere le applicazioni ogni sei mesi a causa di modifiche all'API in una nuova versione di GTK.
Tra i miglioramenti significativi in GTK 4.20:
- È stato attivato il protocollo Wayland text-input per supportare i metodi di input. Per lavorare con i compositori server senza supporto per questo protocollo, è possibile impostare manualmente la variabile d'ambiente «GTK_IM_MODULE=simple», che offre supporto per le sequenze compose di X11 e le chiavi per l'immissione di segni diacritici.
- È stato aggiunto il supporto per il protocollo Wayland wl_seat_v10 e la gestione degli eventi server di ripetizione dei tasti, generati durante la pressione prolungata di un tasto.
- Con l'uso di Wayland è stata aggiunta la supporto per la gestione dei vincoli delle operazioni sui bordi delle superfici di livello superiore (vincolo dei bordi xdg-toplevel). Questa funzionalità consente al gestore di composizione di informare i client di Wayland riguardo ai vincoli esistenti, ad esempio se le finestre possono ridimensionarsi o meno.
- Aggiunta la supporto al protocollo Wayland "tablet-v2" per la gestione dell'input dai tablet grafici.
- Migliorata la gestione dello scrolling durante l'utilizzo di Wayland.
- Per il collegamento delle icone alle finestre è stato utilizzato il protocollo Wayland xdg-toplevel-icon.
- Pulizia e semplificazione di tutte le icone simboliche e delle risorse dei temi, che ora possono essere gestite dal parser integrato del formato SVG. È cessata la fornitura di icone simboliche e risorse tematiche in formato PNG.
- Espanse le possibilità di creazione di temi basati su CSS. Aggiunta la supporto per le media query per il tema dei colori. Implementata la funzione light-dark(). Migliorata la configurazione dei gradienti. Rivisitato il codice per la visualizzazione delle ombre per il testo.
- Migliorata la gestione dei campi di input delle password tenendo conto delle necessità delle persone con disabilità.
- È stata implementata la possibilità di chiamare l'applicazione gnome-papers per visualizzare l'output di stampa. Aggiunta la supporto per il portale xdg per l'organizzazione dell'output di stampa.
- Nelle utilità per sviluppatori sono stati aggiunti componenti per il completamento automatico dell'input in bash. Nell'utilità gtk4-rendernode-tool è stata aggiunta l'opzione "—offload". Nell'utilità di ispezione è stato migliorato l'output delle informazioni sul sistema operativo e la visualizzazione degli eventi. Nel gtk4-path-tool è stata aggiunta la supporto per la visualizzazione delle intersezioni dei percorsi e implementate funzionalità per il funzionamento in modalità interattiva. Nel gtk4-demo sono state aggiunte dimostrazioni "Path Explorer", "Sweep" e "Image Filtering".
- Nel debugger è stata aggiunta la combinazione Super+F per salvare un fotogramma. Aggiunto il modo GTK_DEBUG=touch-ui per testare le interfacce per schermi touch.
- Nell'editor CSS sono stati aggiunti elementi per modificare la schema dei colori e il contrasto.
- Nella libreria GSK (GTK Scene Kit), che fornisce funzionalità di rendering di scene grafiche tramite OpenGL e Vulkan, è stata aggiunta l'API gsk_path_foreach_intersection per calcolare le intersezioni dei percorsi. È migliorato il rendering del testo. Sono state aggiunte ottimizzazioni delle prestazioni, come l'implementazione di una cache di maschere per il riempimento.
- Nella libreria GDK, che fornisce un livello di interfaccia tra GTK e il sottosistema grafico, è stata migliorata la gestione del ridimensionamento delle finestre e aggiunta la supporto per le coordinate relative nell'uso con i tablet.
- Sulla piattaforma Android è stata implementata la corretta supporto per il multitouch e il supporto iniziale per IME (Input Method Editor).
- Per la piattaforma Windows è stata aggiunta un'API per la gestione delle texture tramite D3D12. È stato migliorato il supporto per WGL. Sono stati utilizzati D3D11/D3D12 e DirectComposition.
- È stata aggiunta la supporto per formati di texture multilivello.
- Nel widget GtkVideo è stata implementata la supporto per formati YUV. Il backend gstreamer è stato portato per utilizzare GskPlay. È stato migliorato il supporto per formati con subsampling. È stata aggiunta la supporto per decoder software per formati con profondità di colore a 10, 12 e 16 bit.
- La classe GtkApplication è stata aggiornata per utilizzare portali xdg invece di interagire con il gestore della sessione.
- La classe GtkBuilder ha aggiunto supporto per la traduzione di espressioni con costanti.
- Nella classe GtkIconTheme è consentito il sovrascrittura delle icone simboliche ed è stato aggiunto un parser per i file SVG. La libreria librsvg è ora un requisito obbligatorio.
- Ora è richiesta la supporto per wayland-protocols 1.44 e la presenza delle estensioni wl_output-v2 e xdg_output-v3.
- Sono dichiarati obsoleti il backend Broadway (rendering in una finestra del browser web), l'API Pixbuf, la proprietà GtkApplication:register-session e l'impostazione gtk-application-prefer-dark.
Fonte: opennet.ru
