Після восьми місяців розробки опубліковано реліз багатоплатформного тулкіта для створення графічного інтерфейсу користувача - GTK 4.8.0. GTK 4 розвивається в рамках нового процесу розробки, який намагається надати розробникам додатків стабільний та підтримуваний протягом кількох років API, який можна використовувати не побоюючись, що кожні півроку доведеться переробляти програми через зміну API у черговій гілці GTK.
Серед найбільш помітних покращень у GTK 4.8:
- Змінено стиль інтерфейсу вибору кольорів (GtkColorChooser).
- В інтерфейсі вибору шрифтів (GtkFontChooser) покращена підтримка можливостей формату OpenType.
- У CSS-движку оптимізовано перегрупування елементів, пов'язаних з одним з батьків, і дозволено використання нецілих значень при визначенні розміру інтервалу між літерами.
- Дані Emoji оновлені до набору CLDR 40 (Unicode 14). Додано підтримку нових локалів.
- У темі оформлення оновлено піктограми та підвищено розбірливість текстових міток, що виділяються.
- У бібліотеці GDK, що надає прошарок між GTK та графічною підсистемою, оптимізовано перетворення піксельних форматів. На системах із драйверами NVIDIA задіяно EGL-розширення EGL_KHR_swap_buffers_with_damage.
- У бібліотеці GSK (GTK Scene Kit), що надає можливості відтворення графічних сцен через OpenGL і Vulkan, реалізовано підтримку обробки великих видимих областей (viewport-ов). Запропоновано бібліотеки для малювання гліфів із використанням текстур.
- Для Wayland реалізована підтримка протоколу xdg-activation, який дозволяє передати фокус між різними поверхнями першого рівня (наприклад, за допомогою xdg-activation одна програма може переключити фокус на інше).
- У віджеті GtkTextView скорочено кількість ситуацій, що призводять до повторних перемальовок, і реалізовано функцію GetCharacterExtents для визначення області з гліфом, що визначає символ у тексті (функція потрібна засобам для людей з обмеженими можливостями).
- У класі GtkViewport, що використовується для організації прокручування у віджетах, включений за замовчуванням режим "scroll-to-focus", при якому вміст автоматично прокручується для підтримки на вид елемента, на який встановлено фокус введення.
- У віджеті GtkSearchEntry, що показує область для введення пошукового запиту, можна налаштувати затримку між останнім натисканням клавіші та надсиланням сигналу про зміну вмісту (GtkSearchEntry::search-changed).
- Віджет GtkCheckButton додає можливість призначення свого дочірнього віджету з кнопкою.
- Віджет GtkPicture додає властивість «content-fit» для адаптації вмісту під заданий розмір області.
- У віджеті GtkColumnView проведено оптимізацію продуктивності прокручування.
- У віджеті GtkTreeStore дозволено вилучення деревоподібних даних із файлів у форматі ui.
- До класу GtkInscription, який відповідає за показ тексту в певній області, додано новий віджет для відображення списків. Додано демонстраційну програму з прикладом використання GtkInscription.
- У віджеті GtkTreePopover додано підтримку прокручування.
- У віджеті GtkLabel додано підтримку табуляцій та надано можливість активації міток через натискання на прив'язані до мітки символи на клавіатурі.
- У віджеті GtkListView реалізовано підтримку властивостей «::n-items» та «::item-type».
- У системі введення надається підтримка обробників параметрів розмірності (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE) прокручування.
- Для платформи macOS додана підтримка повноекранного режиму та відтворення відео з використанням OpenGL. Покращено визначення моніторів, робота у багатомоніторних конфігураціях, розміщення вікон та вибір розміру діалогу роботи з файлами. Для малювання задіяні CALayer та IOSurface. Забезпечено запуск програм у фоновому режимі.
- На платформі Windows покращено розміщення вікон на екранах HiDPI, додано інтерфейс визначення кольору, реалізовано підтримку подій колеса миші з високою роздільною здатністю, покращено підтримку тачпадів.
- В утиліту gtk4-builder-tool додано команду screenshot для створення скріншота, яка задіяна при генерації скріншотів для документації.
- Забезпечено встановлення утиліти gtk4-node-editor.
- Розширено можливості відладчика. Реалізовано показ додаткових даних додатків та дозволено перегляд властивостей PangoAttrList під час інспектування. Дозволено інспектування інспекторів. Додана підтримка режиму "GTK_DEBUG=invert-text-dir". Замість змінної оточення GTK_USE_PORTAL запропоновано режим GDK_DEBUG=portals. Підвищена чуйність інтерфейсу інспектування.
- У бекенд ffmpeg додано підтримку звуку.
- Ліміт пам'яті у завантажувачі зображень JPEG збільшено до 300 МБ.
Джерело: opennet.ru