10 ամիս անց անցյալի փորձարկման թողարկում ներկայացվածGTK 3.96, GTK 4-ի առաջիկա կայուն թողարկման նոր փորձնական թողարկում: GTK 4 մասնաճյուղը մշակվում է որպես զարգացման նոր գործընթացի մաս, որը փորձում է հավելված մշակողներին մի քանի տարի ապահովել կայուն և աջակցվող API, որը կարող է օգտագործվել առանց վախի: վեց ամիսը մեկ դիմումը վերաշարադրելու անհրաժեշտություն՝ հաջորդ GTK մասնաճյուղում API-ի փոփոխության պատճառով: Քանի դեռ GTK 4-ը լիովին կայունացել է, խորհուրդ է տրվում, որ օգտատերերին առաջարկվող հավելվածները շարունակեն ստեղծվել մասնաճյուղի միջոցով: GTK 3.24.
API-ում GSK (GTK Scene Kit), որն ապահովում է գրաֆիկական տեսարանների ցուցադրում OpenGL-ի և Vulkan-ի միջոցով, աշխատանք է տարվել այն սխալների վրա, որոնք ավելի հեշտ են ճանաչել վրիպազերծման նոր գործիքի՝ gtk4-node-editor-ի շնորհիվ, որը թույլ է տալիս բեռնել և ցուցադրել հանգույցի մատուցում սերիական ձևաչափով (կարելի է պահպանվել ստուգման ռեժիմում GTK տեսուչում), ինչպես նաև համեմատել մատուցման արդյունքները տարբեր հետնամասեր օգտագործելիս.
3D փոխակերպման հնարավորությունները հասցվել են այնպիսի մակարդակի, որը թույլ է տալիս ստեղծել անիմացիոն էֆեկտներ, ինչպիսիք են պտտվող խորանարդը;
Լիովին վերաշարադրված Broadway GDK backend-ը, որը նախատեսված է GTK գրադարանի ելքը վեբ դիտարկիչի պատուհանում ցուցադրելու համար: Հին Բրոդվեյի իրականացումը չէր տեղավորվում GTK 4-ում առաջարկված մատուցման մեթոդների մեջ (բուֆեր ելքի փոխարեն այն այժմ օգտագործում է ռենդերային հանգույցների վրա հիմնված մոդել, որտեղ ելքը կազմված է բարձր մակարդակի գործողությունների ծառի տեսքով, արդյունավետորեն մշակվում է GPU-ի կողմից՝ օգտագործելով OpenGL և Vulkan):
Բրոդվեյի նոր տարբերակը վերածում է render հանգույցները DOM հանգույցների CSS ոճերով՝ բրաուզերում ինտերֆեյսը ցուցադրելու համար: Էկրանի յուրաքանչյուր նոր վիճակ մշակվում է որպես DOM ծառի փոփոխություն նախորդ վիճակի համեմատ, ինչը նվազեցնում է հեռավոր հաճախորդին փոխանցվող տվյալների չափը: 3D փոխակերպումները և գրաֆիկական էֆեկտներն իրականացվում են CSS փոխակերպման հատկության միջոցով.
GDK-ն շարունակում է իրականացնել API-ներ, որոնք նախագծված են հաշվի առնելով Wayland արձանագրությունը, և մաքրել X11-ի վրա հիմնված API-ները կամ տեղափոխել դրանք առանձին X11 հետին պլան: Առաջընթաց կա մանկական մակերեսների և գլոբալ կոորդինատների օգտագործումից հեռանալու աշխատանքում: GDK_SURFACE_SUBSUFACE-ի աջակցությունը հեռացվել է GDK-ից;
Շարունակվել է Drag-and-Drop գործողությունների հետ կապված կոդի վերամշակումը, ներառյալ առաջարկվող առանձին GdkDrag և GdkDrop օբյեկտները.
Իրադարձությունների մշակումը պարզեցվել է և այժմ օգտագործվում է միայն մուտքագրման համար: Մնացած իրադարձությունները փոխարինվում են առանձին ազդանշաններով, օրինակ՝ ելքային իրադարձությունների փոխարեն առաջարկվում է «GdkSurface::render» ազդանշանը, կոնֆիգուրացիայի իրադարձությունների փոխարեն՝ «GdkSurface::size-changed», քարտեզագրման իրադարձությունների փոխարեն՝ «GdkSurface: :mapped», gdk_event_handler_set()-ի փոխարեն - «GdkSurface::event»;
GDK backend-ը Wayland-ի համար ավելացրել է GtkSettings կարգավորումներ մուտք գործելու համար պորտալի ինտերֆեյսի աջակցություն: Ներածման մեթոդների հետ աշխատելու համար առաջարկվել է text-input-unstable-v3 արձանագրության ընդլայնման աջակցություն;
Վիջեթների մշակման համար ներկայացվում է նոր GtkLayoutManager օբյեկտ՝ տեսանելի տարածքի դասավորությունից կախված տարրերի դասավորությունը վերահսկելու համակարգի ներդրմամբ։ GtkLayoutManager-ը փոխարինում է երեխայի հատկությունները GTK կոնտեյներներում, ինչպիսիք են GtkBox-ը և GtkGrid-ը: Առաջարկվում են մի քանի պատրաստ դասավորության կառավարիչներ. կարգավորիչներ;
GtkAssistant, GtkStack և GtkNotebook վիջեթներին ավելացվել են հանրայնորեն հասանելի օբյեկտներ՝ երեխաների տարրերի էջերի ցուցադրման համար, որոնց փոխանցվում են այս վիջեթների ոչ Layout-ի հետ կապված զավակային հատկությունները: Քանի որ բոլոր գոյություն ունեցող երեխա հատկությունները փոխարկվել են սովորական հատկությունների, դասավորության հատկությունների կամ տեղափոխվել էջի օբյեկտներ, երեխայի հատկությունների աջակցությունն ամբողջությամբ հեռացվել է GtkContainer-ից;
GtkEntry-ի հիմնական գործառույթը տեղափոխվել է նոր GtkText վիջեթ, որը ներառում է նաև ընդլայնված GtkEditable խմբագրման ինտերֆեյս: Բոլոր առկա տվյալների մուտքագրման ենթադասերը վերափոխվել են որպես GtkEditable իրականացումներ՝ հիմնված նոր GtkText վիջեթի վրա;
Ավելացվել է նոր GtkPasswordEntry վիջեթ գաղտնաբառի մուտքագրման ձևերի համար;
GtkWidgets-ն ավելացրել է երեխայի տարրերը փոխակերպելու հնարավորություն՝ օգտագործելով CSS-ի միջոցով նշված գծային փոխակերպման մեթոդները կամ gtk_widget_allocate արգումենտը GskTransform-ին: Նշված հատկանիշն արդեն կիրառվում է GtkFixed վիդջեթում;
Ավելացվել են ցուցակի սերնդի նոր մոդելներ՝ GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel և GtkSingleSelection: Ապագայում մենք նախատեսում ենք GtkListView-ին ավելացնել ցուցակի մոդելների աջակցություն;