gnome-gitlab GNOME/gtk 4.21.2

13 hours ago

Overview of Changes in 4.21.2, 20-11-2025

GSK

  • GskRenderNodeReplay is a new API that can assist with manipulating render node trees in various ways
  • The new copy and paste node types allow referring to the 'background' during rendering, which enables new features such as backdrop-filter
  • The new composite node type allows to combine rendering with the'background' in more interesting ways than just rendering it on top
  • Radial gradients can be defined with non-concentric circles

GtkSvg

  • <line>, <polyline> and <polygon> are now supported
  • Gradients are fully supported, including non-concentric radial gradients and reflecting as a spread method

CSS

  • A reduced-motion setting has been added, and is exposed to CSS via media queries
  • the backdrop-filter property is supported

GtkEmojiChooser

  • The Emoji chooser has been updated for CLDR 48

GtkFontDialog

  • The language filtering has been improved

Bugs fixed

  • GNOME/libadwaita#892 Adw.PreferencesDialog focus move (Alice Mikhaylenko)
  • #4062 gtk_media_file_set_input_stream assertion failure when using GStreamer
    backend
  • #7820 Follow-up on loose ends in the state saving support
  • #7857 Feature: Add Win32 impl for gtk_file_launcher_open_containing_folder()
    (Sergey Bugaev)
  • #7862 icon-editor: SVG not viewable in firefox (Matthias Clasen)
  • #7866 Vulkan: Validation: vkQueuePresentKHR(): PRESENT_AFTER_WRITE hazard
    detected. (Benjamin Otte)
  • #7867 ModelButton: Increasingly long hang when switching AdwMultiLayoutView
    (Emmanuele Bassi)
  • #7872 modelbutton: Accels not accessible in non-English (Adrien Plazas)
  • #7877 Have a toggle for reduce motion in inspector (Emmanuele Bassi)
  • #7878 CSS tab in inspector doesn't follow reduce-motion (Emmanuele Bassi)

Changes

  • !7186 media: Add a bin to handle input streams (Matthias Clasen)
  • !8826 fontchooser: Add a search bar to filter the language list (Sudip Shil)
  • !9055 API: Add GskRenderNodeReplay (Benjamin Otte)
  • !9096 image tool: Some refinement (Matthias Clasen)
  • !9097 svg: Support the remaining shapes (Matthias Clasen)
  • !9099 Tie up state saving loose ends (Adrian Vovk)
  • !9103 icon editor: Plug a memory leak (Matthias Clasen)
  • !9105 svg: Make fx,fy default to cx,cy (Matthias Clasen)
  • !9106 svg: Take dependencies into account (Matthias Clasen)
  • !9107 inspector: css-editor: Replace disable button with a switch (Jules
    Maselbas)
  • !9108 svg: fix printf format for size_t variables (g.willems)
  • !9109 gtkfilechoosercell: Actually add long pressure gesture (Marco Trevisan
    (Treviño))
  • !9110 pathbar: Plug a memory leak (Matthias Clasen)
  • !9111 Fix touch dropdown selection (!8041) properly (Florian "sp1rit"​)
  • !9112 Cosmetics: Add section markers (Matthias Clasen)
  • !9114 svg: Allow keyPoints to be outside of 0, 1
  • !9115 Rework radial gradients (Matthias Clasen)
  • !9116 svg: fix Windows builds (g.willems)
  • !9117 win32: Add a facility to open containing folder (Sergey Bugaev)
  • !9118 css: Fix some properties' inheritance (Adrien Plazas)
  • !9121 gsk: Don't leak ccs_texture_caches (Doug Nazar)
  • !9122 colorstate: Add a static assert (Benjamin Otte)
  • !9124 Merge the theme assets and rework the generation script (Berk Elyesa
    Yıldırım)
  • !9125 Split rendernodes into their own files (Benjamin Otte)
  • !9126 Add copy and paste rendernodes (Benjamin Otte)
  • !9127 ci: use system meson for android
  • !9128 vulkan: Rework swapchain present implementation (Benjamin Otte)
  • !9129 doc: Fix GTK_ACCESSIBLE_PROPERTY_HAS_POPUP (Adrien Plazas)
  • !9130 gsk: Add gdk_color_is_srgb() (Benjamin Otte)
  • !9131 svg: Collect test output (Matthias Clasen)
  • !9132 svg: Fix animate transitions with delay (Matthias Clasen)
  • !9134 Reset ModelButton accessible relations (Emmanuele Bassi)
  • !9135 Support repeating conic gradients (Matthias Clasen)
  • !9136 widget: Sanity-check ancestor type (Sergey Bugaev)
  • !9137 a11y: When setting an accessible relation, clear out previous reverse
    ones (Lukáš Tyrychtr)
  • !9139 gsk: Typo fix (Matthias Clasen)
  • !9140 Fix repeating conic gradients (Matthias Clasen)
  • !9143 icon editor: Get rid of AnimationType (Matthias Clasen)
  • !9144 Revert "gsk: Fix the conic gradient implementation" (Benjamin Otte)
  • !9145 gtk: Document GTK_DEBUG_SESSION (Maximiliano Sandoval)
  • !9146 modelbutton: Use accessible keyshortcuts labels (Adrien Plazas)
  • !9149 svg: Turn simple NULL returns on errors into return_if_fail()
    (Benjamin Otte)
  • !9151 icon editor: Allow more shapes (Matthias Clasen)
  • !9152 emoji: Update data to CLDR 48 (Jeremy Bícha)
  • !9153 Some more rendernode splitoffs (Matthias Clasen)
  • !9156 gsk: Change the linear gradient shader api (Matthias Clasen)
  • !9157 Some icon editor fixes (Matthias Clasen)
  • !9158 icon-editor: fix msys2 linker failure (g.willems)
  • !9159 API: Add GskCompositeNode (Benjamin Otte)
  • !9160 testsuite: Add an "opaque" run to compare-render (Benjamin Otte)
  • !9161 node editor: Unset GtkApplication:save-state (Matthias Clasen)
  • !9162 cssprovider: Actually reload when prefers-reduced-motion changes
    (Alice Mikhaylenko)

Translation updates

  • Serbian (Милош Поповић)
  • Slovenian (Martin)

Don't miss a new gtk release

NewReleases is sending notifications on new releases.