Contents Menu Expand

What's New for Developers

GNOME 51 includes GTK 4.23 and Libadwaita 1.10.

For complete documentation, visit the GNOME Developer website.

GTK

GTK 4.23 builds on the native SVG work from GTK 4.22 and adds rendering, input, and platform improvements.

Native SVG Rendering

The new GtkSvgWidget renders SVG directly in your application, with support for interactive elements such as <a> links and <view>. The gtk_svg_set_stylesheet() API allows stylesheets to be applied to SVG inline <style> elements.

Fractional Scale Rendering

Snapping support allows GTK to align content to device pixel boundaries for improved rendering quality on fractional HiDPI scales.

GtkSvg Pixelart

GtkSvg is now used to render all SVG icons. Symbolic icon recoloring issues have been fixed. GTK's GtkSpinner widget now uses animated SVG.

The SVG renderer now supports the feTurbulance filter effect, dominant-baseline and baseline-shift for text, text-decoration, proper whitespace handling, media queries in CSS, and 3D transforms.

Graphics and Frame Delivery

The GSK renderer supports 10-bit image formats, uses a rewritten cache allocator, and uses clip masks to reduce offscreen passes. Frame clock improvements continue. GTK respects the system reduced-motion preference in GtkSpinner, GtkStack, and GtkRevealer.

Platform & Protocol Support

Input Improvements

Type-to-search reworked to use a "push" approach. New gtk_editable_set_input_interceptor() API for intercepting input. gtk_event_controller_key_forward() is deprecated.

New GtkShortcutTrigger helper functions handle synonymous keys, such as keypad variants. GtkActivateTrigger added. Long-pressing on GtkEntry opens the touch menu.

Lists, Models, and CSS

Size allocation issues in GtkList, GtkGrid, and GtkColumnView fixed. GtkEnumList provides a list model backed by a GType enumeration for populating dropdowns.

GTK now supports the font-width property for specifying intermediate widths as percentages. font-stretch remains as shorthand. Requires Pango 1.58.

Libadwaita

Libadwaita 1.10 introduces new API for declarative styling, updates sidebar widgets, and adds Android build support.

CSS Class Binding

AdwCssClassBinding adds CSS classes to widgets when a GObject property holds a given value.

Sidebar Updates

AdwSidebar and AdwViewSwitcherSidebar added :prefix and :suffix properties for adding widgets before and after sidebar contents.

Libadwaita Pixelart

API Updates

AdwEnumListModel has been deprecated, with libadwaita now using the GtkEnumList from GTK 4.23 in its place.

Widget Enhancements

The adaptive preview in the demo now contains window styles and collapses the sidebar on small sizes.

Libadwaita 1.10 requires GTK 4.23.1, depends on ministream instead of appstream, and can be built on Android.