Nakon četiri godine razvoja napokon najavljeno je izdanje nove grane GTK 4.0, koja se razvija kao dio novog razvojnog procesa koji programerima pokušava osigurati stabilan i kompatibilan API nekoliko godina, koji se može koristiti bez straha da će morati ponavljati aplikacije svakih šest mjeseci zbog promjena API-ja u sljedećem GTK-u grana.
Podružnica GTK 4 je proglašen stabilnim i koristit će se u sljedećem izdanju GNOME 4.0. Istodobno je objavljeno da je podrška za podružnicu GTK 2 prekinuta, za nekoliko dana za koju se planira objaviti najnovije izdanje, dok će se podrška za podružnicu GTK 3 nastaviti u doglednoj budućnosti.
Glavne nove karakteristike GTK 4.0
Od promjena koje se ističu u ovoj novoj grani, to možemo pronaći primijenjena je ograničena metoda dizajna, u kojem se mjesto i veličina podređenih elemenata određuju na temelju udaljenosti do ivica i veličine ostalih elemenata.
pored toga dodao modul za prikazivanje zasnovan na grafičkom API-ju Vulkan, koji implementira sjenčare za mnoge CSS elemente koji koriste resurse i koji se koriste u GTK dodacima i GSK je integriran (GTK pribor za scenu) sa mogućnostima prikazivanja grafike scena putem OpenGL-a i Vulkana.
Revidirana je organizacija predstavništva: umjesto da ga pošalje u međuspremnik, sada se koristi model zasnovan na čvorovima prikazivanja, u kojem je izlaz organiziran u obliku stabla operacija na visokom nivou, efikasno obrađuje GPU koristeći OpenGL i Vulkan.
To možemo vidjeti i u GTK 4.0 predložen je modernizirani model isporuke događaja, što omogućava zaobilaženje potprozora prilikom usmjeravanja ulaznih događaja. Potreba za implementacijom novog modela povezana je s aktivnijom upotrebom efekata animacije, koji se moraju prikazati bez promjene rasporeda vidljivih elemenata i, shodno tome, bez podprozora.
GDK API je preoblikovan kako bi iskoristio prednosti protokola Wayland i srodni koncepti. Funkcije povezane s X11 i Waylandom premještene su u odvojene pozadinske mreže i napravljeno je veliko čišćenje API-ja, uključujući uklanjanje klasa GtkMenu, GtkMenuBar i GtkToolbar, umjesto kojih su predložene GMenu i opcije popover.
Dok je za razvoj widgeta predstavljen novi GtkLayoutManager objekt s implementacijom kontrolnog sistema za raspored elemenata na osnovu veličine vidljive površine i da je GtkLayoutManager zamijenio podređena svojstva u GTK spremnicima kao što su GtkBox i GtkGrid.
Od ostalih promjena koje se ističu:
- Dodata je nova klasa GtkNative za widgete koji imaju vlastitu površinu zaslona i mogu raditi odvojeno na prvom nivou, bez povezivanja s glavnim widgetima.
- Dodani su novi dodaci, uključujući GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, kao i dodatak za prikaz emojija.
- Dodan je novi sloj apstrakcije, GdkPaintable, koji prikazuje objekte koji se mogu crtati bilo gdje i u bilo kojoj veličini, bez potrebe za sortiranjem slojeva dizajna.
- Broadway pozadina je prepisana kako bi se omogućilo prikazivanje izlaza GTK biblioteke u prozoru web pregledača.
- API koji se odnosi na operacije povlačenja i ispuštanja je redizajniran, uključujući predložene odvojene GdkDrag i GdkDrop objekte.
- Uklonjena je prethodna primjena API-ja za pristupačnost za osobe s invaliditetom i predložena je nova verzija zasnovana na ARIA specifikaciji i vidžetu GtkAccessible.
- Dodana podrška za naljepnice koje se mogu uređivati
- Dodatak GtkTreeView implementira mogućnost uređivanja ćelija.
- Dodana je podrška za inkrementalno pomicanje i filtriranje u GtkFilterListModel i GtkSortListModel.
- Dodan je novi GDK backend za macOS.
GtkTextView i drugi ulazni dodaci imaju ugrađeni stog za poništavanje. - Za Windows se nudi nova pozadina GDK za prikazivanje zasnovana na ANGLE-u, srednji sloj za prevođenje poziva iz OpenGL ES-a u OpenGL, Direct3D 9/11, Desktop GL i Vulkan.