Nakon četiri godine razvoja konačno najavljeno je izlazak nove podružnice GTK 4.0, koji 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 podružnica.
Podružnica GTK 4 je proglašen stabilnim i koristit će se u sljedećoj verziji GNOME-a 4.0. Istodobno je objavljeno da je ukinuta podrška za podružnicu GTK 2, za nekoliko dana za koju se planira objaviti najnovije izdanje, dok će se podrška za podružnicu GTK 3 nastaviti u dogledno vrijeme.
Glavne nove značajke GTK 4.0
Od promjena koje se ističu u ovoj novoj grani to možemo pronaći primijenjena je ograničena metoda projektiranja, u kojem se mjesto i veličina podređenih elemenata određuju na temelju udaljenosti do rubova i veličine ostalih elemenata.
osim toga dodan modul za prikazivanje zasnovan na grafičkom API-ju Vulkan, koja implementira sjenčare za mnoge CSS elemente koji koriste resurse i koji se koriste u GTK widgetima i GSK je integriran (GTK pribor za scenu) s 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 visokoj razini, učinkovito obrađuje GPU koristeći OpenGL i Vulkan.
To također možemo vidjeti u GTK 4.0 predložen je modernizirani model isporuke događaja, što omogućuje zaobilaženje podprozora prilikom usmjeravanja ulaznih događaja. Potreba za implementacijom novog modela povezana je s aktivnijom uporabom efekata animacije, koji se moraju prikazati bez promjene rasporeda vidljivih elemenata i, shodno tome, bez podprozora.
GDK API preoblikovan je kako bi iskoristio prednosti protokola Wayland i srodni pojmovi. Funkcije povezane s X11 i Waylandom premještene su u zasebne pozadinske mreže i napravljeno je veliko čišćenje API-ja, uključujući uklanjanje klasa GtkMenu, GtkMenuBar i GtkToolbar, umjesto kojih se predlažu GMenu i opcije popover.
Za razvoj widgeta predstavljen je novi objekt GtkLayoutManager s implementacijom kontrolnog sustava za raspored elemenata na temelju veličine vidljive površine i da je GtkLayoutManager zamijenio podređena svojstva u GTK spremnicima kao što su GtkBox i GtkGrid.
Od ostalih istaknutih promjena:
- Dodana je nova klasa GtkNative za widgete koji imaju vlastitu površinu zaslona i mogu raditi odvojeno na prvoj razini, bez povezivanja s glavnim widgetima.
- Dodani su novi widgeti, uključujući GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, kao i widget 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 razvrstavanja slojeva dizajna.
- Broadway pozadina prepisana kako bi se omogućilo prikazivanje izlaza GTK biblioteke u prozoru web preglednika.
- API koji se odnosi na operacije povlačenja i ispuštanja redizajniran je, uključujući predložene odvojene GdkDrag i GdkDrop objekte.
- Uklonjena je prethodna primjena API-ja za pristup osobama s invaliditetom i predložena je nova verzija temeljena na ARIA specifikaciji i widgetu GtkAccessible.
- Dodana podrška za naljepnice koje se mogu uređivati
- Dodatak GtkTreeView implementira mogućnost uređivanja stanica.
- Dodana je podrška za inkrementalno pomicanje i filtriranje na 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 za prikazivanje GDK temeljena na ANGLE-u, srednji sloj za prevođenje poziva s OpenGL ES-a na OpenGL, Direct3D 9/11, Desktop GL i Vulkan.