Представлен GTK+ 3.92.1, экспериментальный выпуск GTK+ 4
Сформирован очередной тестовый выпуск будущего стабильного релиза GTK+ 4. Ветка GTK+ 4 развивается в рамках нового процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придется переделывать приложение из-за изменения API в очередной ветке GTK+. До полной стабилизации GTK+ 4, приложения, предлагаемые для пользователей, рекомендуется продолжить собирать с использованием ветки GTK+ 3.22, которая будет поддерживаться три года.
Основные изменения в GTK+ 3.92.1:
- Прекращение поддержки сборочной системы на базе autotools в пользу инструментария Meson;
- Поддержка управления шрифтами через CSS-свойство font-variant;
- В GtkEntry добавлен виджет для выбора Emoji. Также добавлены хинты для ввода Emoji с клавиатуры;
- Все виджеты портированы на GtkSnapshot;
- GtkLabel и GtkEntry переведены на использование GSK (GTK Scene Kit), обеспечивающего отрисовку графических сцен через OpenGL и Vulkan;
- Почти завершена работа над кодом отрисовки через графический API Vulkan. Из нереализованных возможностей осталась только отрисовка размытых теней. Изменена внутренняя логика отрисовки через Vulkan, вместо записи промежуточных результатов в виде поверхностей Сairo задействованы текстуры. Устранены все заглушки для отрисовки текста через Сairo. В GSK для бэкенда Vulkan задействована многофазная отрисовка, реализован кэш глифов для исключения повторной отрисовки глифов, поддержка размытия и возможность профилирования вывода. Добавлены API gsk_text_node_new, gsk_blur_node_new, gsk_cross_fade_node_new и gsk_blend_mode_new;
- В GtkOverlay реализован режим размытия содержимого за дочерними элементами;
- Поддержка использования штатного диалога выбора файлов в старых выпусках OS X;
- В GtkPlacesSidebar добавлена поддержка libcloudproviders;
- Доя несвязанных с окнами виджетов теперь допустим размер 0x0;
- Поддержка изменения размера мозаично размещенных окон (tiled)
- Внесены изменения в обработку ввода: в GdkEvent добавлены новые методы доступа к полям, традиционные сигналы событий ввода (например,::key-press-event) теперь поступают от контроллера событий, в большинстве внутренних виджетов прекращено использование традиционных сигналов сбытий ввода, GDK_SEAT_CAPABILITY_ALL_POINTING теперь включает события сенсорного экрана;
- В интерфейсе инспектирования расширена информация об узлах отрисовки, добавлены сведения о параметрах gsk и vulkan;
- Удалены API: gdk_window_new_input, gtk_widget_set_redraw_on_alloc, gtk_widget_get_{border,content,margin}_allocation и gtk_container_propagate_draw.