După opt luni de dezvoltare, a fost publicată lansarea unui set de instrumente multi-platformă pentru crearea unei interfețe grafice cu utilizatorul - GTK 4.8.0. GTK 4 este dezvoltat ca parte a unui nou proces de dezvoltare care încearcă să ofere dezvoltatorilor de aplicații un API stabil și acceptat timp de câțiva ani, care poate fi utilizat fără teama de a fi nevoie să rescrie aplicațiile la fiecare șase luni din cauza modificărilor API-ului în următorul GTK ramură.
Printre cele mai notabile îmbunătățiri ale GTK 4.8 se numără:
- Stilul interfeței de selecție a culorilor a fost schimbat (GtkColorChooser).
- Interfața de selecție a fonturilor (GtkFontChooser) are suport îmbunătățit pentru capabilitățile de format OpenType.
- Motorul CSS a optimizat regruparea elementelor asociate aceluiași părinte și permite utilizarea valorilor non-întregi atunci când se determină dimensiunea distanței dintre litere.
- Datele emoji au fost actualizate la CLDR 40 (Unicode 14). S-a adăugat suport pentru noile locații.
- Tema a actualizat pictogramele și a îmbunătățit lizibilitatea etichetelor de text evidențiate.
- Biblioteca GDK, care oferă un strat între GTK și subsistemul grafic, a optimizat conversia formatelor de pixeli. Pe sistemele cu drivere NVIDIA, extensia EGL EGL_KHR_swap_buffers_with_damage este activată.
- Biblioteca GSK (GTK Scene Kit), care oferă capacitatea de a reda scene grafice prin OpenGL și Vulkan, acceptă procesarea zonelor vizibile mari (porturi de vizualizare). Sunt propuse biblioteci pentru redarea glifelor folosind texturi.
- Wayland acceptă protocolul „xdg-activation”, care vă permite să transferați focalizarea între diferite suprafețe de la primul nivel (de exemplu, folosind xdg-activation, o aplicație poate comuta focalizarea pe alta).
- Widgetul GtkTextView reduce numărul de situații care duc la redesenări repetate și implementează funcția GetCharacterExtents pentru a determina zona cu gliful care definește caracterul din text (o funcție populară în instrumentele pentru persoanele cu dizabilități).
- Clasa GtkViewport, folosită pentru a organiza derularea în widget-uri, are modul „scroll-to-focus” activat în mod implicit, în care conținutul este derulat automat pentru a menține elementul care are în vedere focalizarea de intrare.
- Widgetul GtkSearchEntry, care afișează zona pentru introducerea unei interogări de căutare, oferă posibilitatea de a configura întârzierea dintre ultima apăsare a tastei și trimiterea unui semnal despre modificarea conținutului (GtkSearchEntry::search-changed).
- Widgetul GtkCheckButton are acum capacitatea de a-și atribui propriul widget secundar cu un buton.
- S-a adăugat proprietatea „content-fit” la widgetul GtkPicture pentru a adapta conținutul la o anumită dimensiune a zonei.
- Performanța derulării a fost optimizată în widget-ul GtkColumnView.
- Widgetul GtkTreeStore permite extragerea datelor din arbore din fișiere în format ui.
- Un nou widget pentru afișarea listelor a fost adăugat la clasa GtkInscription, care este responsabilă pentru afișarea textului într-o anumită zonă. S-a adăugat o aplicație demonstrativă cu un exemplu de utilizare a GtkInscription.
- S-a adăugat suport de defilare la widget-ul GtkTreePopover.
- Widgetul GtkLabel a adăugat suport pentru file și capacitatea de a activa etichete făcând clic pe simbolurile asociate cu eticheta de pe tastatură.
- Widgetul GtkListView acceptă acum proprietățile „::n-items” și „::item-type”.
- Sistemul de introducere oferă suport pentru gestionarea parametrilor dimensiunii de defilare (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE).
- Pentru platforma macOS, a fost adăugat suport pentru modul ecran complet și redarea video folosind OpenGL. Detectare îmbunătățită a monitorului, lucru în configurații cu mai multe monitoare, plasarea ferestrelor și selectarea dimensiunii pentru dialogul fișierului. CALayer și IOSurface sunt folosite pentru randare. Aplicațiile pot fi lansate în fundal.
- Pe platforma Windows, așezarea ferestrelor pe ecranele HiDPI a fost îmbunătățită, a fost adăugată o interfață de detectare a culorilor, a fost implementat suportul pentru evenimentele cu roțile mouse-ului de înaltă rezoluție și a fost îmbunătățit suportul pentru touchpad.
- O comandă de captură de ecran a fost adăugată la utilitarul gtk4-builder-tool pentru a crea o captură de ecran, care este utilizată atunci când se generează capturi de ecran pentru documentare.
- Este furnizată instalarea utilitarului gtk4-node-editor.
- Capacitățile de depanare au fost extinse. S-a implementat afișarea datelor suplimentare ale aplicației și a permis vizualizarea proprietăților PangoAttrList în timpul inspecției. Inspecțiile efectuate de inspectori sunt permise. S-a adăugat suport pentru modul „GTK_DEBUG=invert-text-dir”. În locul variabilei de mediu GTK_USE_PORTAL, este propus modul „GDK_DEBUG=portals”. Reactivitate îmbunătățită a interfeței de inspecție.
- Suportul pentru sunet a fost adăugat la backend-ul ffmpeg.
- Limita de memorie în descărcatorul de imagini JPEG a fost mărită la 300 MB.
Sursa: opennet.ru