В релиз вышел графический тулкит GTK 4.2
После трех месяцев разработки сообществу был представлен тулкит GTK 4.2.0. Это многоплатформенная разработка для создания графического интерфейса пользователя. GTK 4, в отличие от GTK 3, развивается в рамках нового процесса разработки, цель которого — предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API.
Нужно это для того, чтобы использовать GTK 4 не опасаясь, что каждые полгода придется переделывать приложения из-за изменения в API с выпуском очередной ветки GTK в релиз.
В версии GTK 4.2 разработчики сосредоточились над устранением недочетов и внесении улучшений в сам API. Работа велась на основании отзывов других разработчиков, которые портировали свои программы на GTK 4. Из наиболее заметных улучшений в GTK 4.2 можно отметить:
Добавлен NGL renderer — новый движок отрисовки через OpenGL. NGL renderer по умолчанию используется в Linux, Windows и macOS. Движок обеспечивает более высокую производительность при меньшей нагрузке на по сравнению с другими схожими по характеристикам решениями CPU. Для того, чтобы отказаться от NGL renderer и продолжить пользоваться движком предыдущей версии в приложениях, нужно запустить его с переменной окружения GSK_RENDERER=gl.
Разработчиками была переделана обработка последовательностей Compose и немых клавиш, которые изменяют вид следующего вводимого символа.
Реализована возможность использования GTK в форме подпроекта в сборочной системе Meson. Это позволяет собирать GTK и все его зависимости в составе сборочного окружения собственного приложения. Еще это дает возможность получать все сборочные артефакты для поставки вместе с приложением с использованием выбранного для этого инструментария.
Была улучшена поддержка компиляции GTK для Windows и macOS с использованием родных для данных платформ инструментариев.
Разработчики доработали и переделали документацию на API. Теперь для ее формирования задействован новый генератор gi-docgen: он выдает более удобное представление информации, включая кнопки для добавления примеров кода в буфер обмена, наглядное представление иерархии предков и интерфейсов каждого класса, список унаследованных свойств, сигналов и методов класса. Новый интерфейс поддерживает поиск на стороне клиента и автоматически адаптируется к разным размерам экрана. Также был запущен новый сайт — docs.gtk.org, на котором размещается документация и сопутствующие руководства по интроспекции GObject, Pango и GdkPixbuf.
Была оптимизирована производительность различных компонентов, начиная с шейдеров GLSL, которые задействованы при отрисовке, и заканчивая объектами для людей с ограниченными возможностями.
Реализовано субпиксельное позиционирование текста при использовании новых версий библиотеки Cairo.
Обеспечена адаптивная компоновка интерфейса для выбора emoji.
Улучшена поддержка расширения протокола Wayland для управления вводом.
Повышена производительность прокрутки в виджете просмотра текста.
Улучшена отрисовка теней во всплывающих виджетах (popover).