Արշավյալ 6 ամսվա մշակումից հետո հրապարակվել է բազմամակարդակային գործիքի հավաքածուի թողարկումը՝ GTK 4.22: GTK 4 զարգանում է այն մշակման գործընթացի շրջանակներում, որը փորձում է տրամադրել ծրագրավորողներին կայուն և մի քանի տարի պահպանվող API, որը կարող է օգտագործվել առանց վախի, որ յուրաքանչյուր ութ ամսվա ընթացքում անհրաժեշտ կլինի վերագործարկել ծրագրերը API-ի փոփոխություններով, որոնք առաջանում են GTK-ի հերթական ճյուղում:
GTK 4.22-ում նկատելի բարելավումների թվում են՝
- Ավելացած է SVG ձևաչափի պատկերների ներկառուցված նկարահանման և վերծանրամացման համակարգ, որ աջակցում է անիմացիային և հնարավորություն տալիս է ստեղծել անիմացված պատկերակներ, ինտերակտիվ միջերեսի բաղադրիչներ և դինամիկ կերպարանափոխվող ցուցիչներ, ինչպիսիք են առաջընթացի ցուցիչները: GtkSvg-ը անմիջականորեն ինտեգրված է GSK (GTK Scene Kit) գրադարանում, որը ապահովում է գրաֆիկ Scene-երի նկարահանման կարողություններ OpenGL և Vulkan միջոցով: librsvg գրադարանը, որը նախկինում օգտագործվում էր SVG պատկերակների նկարահանման համար, դուրս է բերվել կախվածություններից:
SVG ձևաչափով աշխատելու համար առաջարկվում է Gtk.Svg դասը, որը թույլ է տալիս խուսափել արտաքին պահանջներից վեկտորային պատկերակների և հավելվածների ռեսուրսների նկարահանման ժամանակ: SVG ձևաչափի առաջարկված իրագործումը մշակվել է հատկապես GTK-ի համար և հաջողությամբ անցնում է 1250-ից 1616 համատեղելիության թեստերի resvg հավաքածուում (համեմատության համար, Firefox-ը անցնում է 1385 թեստ, librsvg-ը 1168, իսկ QtSvg-ը 591):
- Ավելացվել է GtkPopoverBin վիջեթ, որն առիթ է տալիս հեշտացնել համատեքստային մենյու և ճեղքված երկխոսությունների ավելացումը այլ վիջեթների մեջ: GtkPopoverBin-ը կարող է օգտագործվել որպես տարր, որպեսզի ինտեգրի պղպջակային պատուհանների ֆունկցիոնալությունը այն վիջեթներում, որոնք ինքնուրույն այդպես չեն կարողանում:
- Ավելացված է GtkTryExpression նոր տեսակի արտահայտություններ, որոնք թույլ են տալիս ֆալբեք գործողությունների սահմանումը: GtkTryExpression-ը փորձում է կատարել յուրաքանչյուր արտահայտություն ցանկից մինչև մեկը հաջողությամբ կատարվի:
- Նոր կարգավորած պատկերակների ձևաչափ է օգտագործվում, որը աջակցում է անիմացիան և փոփոխվող իրավիճակները (օրինակ, ակտիվության ցուցանիշի համար): Պատկերակների լայնությունը կառավարելու համար ավելացվել է CSS-ի «-gtk-icon-weight» հատկությունը: Ավելացվել է ցուցադրական հավելված org.gtk.Shaper՝ նոր պատկերակների ձևաչափի խմբագրիչի իրագործմամբ:

- Բեքենդում աշխատելու համար Wayland պրոտոկոլի հիման վրա միջավայրերում իրականացված է xx-session-management պրոտոկոլի փորձագիտական աջակցություն, որը կարող է օգտագործվել համակցված նստաշրջանների վիճակը վերականգնելու համար (օրինակ, կոմպոզիտորին արգելափակելուց հետո): Ծրագրի խթանման համար անհրաժեշտ է տեղադրել «GDK_DEBUG=session-mgmt» շրջապատի փոփոխականը:
- GtkApplication API-ում ավելացվել է վիճակի պահպանելու հնարավորությունը՝ օգտագործելով xx-session-management պրոտոկոլը: GNOME 50-ում այս ֆունկցիոնալությունը օգտագործվում է նստաշրջանների պահպանման և պատուհանների դիրքերի վերականգնման համար:
- Wayland-ի բեքենդում կարգավիճակը մուտք գործելու համար օգտագործվում է freedesktop.portal.Settings պորտալը։
- GtkFileLauncher API-ում ներառվել է ֆայլերի գրելու հնարավորություն, որն օգտագործվում է flatpak փաթեթների շրջանակներում։
- GSK (GTK Scene Kit)-ում ավելացվել են պրոֆիլավորման աջակցություն և մուտքային պատկերների պիքսելների փոխում «մշակման քարտեզի» (displacement map) հիման վրա՝ բարդ գրաֆիկական էֆեկտներ ստեղծելու համար։
- Ավելացված է GskRenderNodeReplay API, որն օգտագործվում է նկարիչ узլերի (Render Node) ծառի մշակման համար։
- Ավելացվել են նոր տեսակներ отрисовки узлов «copy» և «paste», որոնք թույլ են տալիս քաղել և տեղադրել ներկայիս տարրի տակ գտնվող տարածքը сцены գծապատկերում։
- Ավելացվել է новы узлов отрисовки «composite», որի միջոցով օգտագործվում են լրացուցիչ կազմավորական գործողություններ, երբ նկարելիս տարրը գտնվում է բակի վրա, ինչպես օրինակ՝ մ ASK-ի միջոցով overlay։
- CSS-ում ավելացված է «backdrop-filter» հատկությունը, որն օգտագործվում է фонային տարածքին էֆեկտներ կիրառելու համար, օրինակ՝ фонային模糊表示ումն։
- CSS-ում ավելացվել է «reduced-motion» հիշեցման աջակցություն, որը տեղեկացնում է ստեղծված ընդդեմ նվազեցնելու շարժման օգտագործումը։
Ընտանիք: opennet.ru

