Overview of Changes in 4.24.1, 01-10-2026 - #8409 search-entry: Needs extra touch to show OSK although it has focus (Guido Günther) - #8419 text-input: Preedit gets cleared due to text-change-cause(1) (Guido Günther) - #8433 GtkSvgWidget can't parse '@media' if it is not on a new line (Matthias Clasen) - !10264 gtkmain: Split out debug code - !10367 gtkgstsink: release GL context on disposal (Pierre Berube) - !10369 Post-release version bump (Matthias Clasen) - !10372 Fix typo in CONTRIBUTING.md (Michael Fohqul) - !10385 texthandle: fix transformation issues & relative movement (Florian "sp1rit"​) - !10393 Fix typo ('witten' should be 'written') (ReinoutS) - !10395 searchbar: Show OSK when search-mode gets enabled (Guido Günther) - !10396 docs: Correct docs for allocation functions (Benjamin Otte) - !10398 textbuffer: Fix tag colors in accessible text attributes (Sean Rowe) - !10403 gtk/inscription: Refresh GtkInscription's PangoLayout when rooted (Christian Hergert) - !10409 text: Protect against invalid offset (Alessandro Astone) - !10414 macos: fix cursor keys (Arjan Molenaar) - !10421 various fixes (Benjamin Otte) - !10422 Norwegian Nynorsk translation. (Roy-Magne Mo) - !10423 gl: Create 2 fbos per frame instead of 1 per image (Benjamin Otte) - !10425 Update Norwegian nynorsk translation (Roy-Magne Mo) - !10429 textview: Make text handles visible after giving them a position (Carlos Garnacho) - Norwegian Nynorsk (Roy-Magne Mo) Overview of Changes in 4.24.0, 11-09-2026 - #8195 Animated SVG frequently disappears (Matthias Clasen) - #8307 drop-performed class handlers read a phantom timestamp and send it in XdndDrop (Simeon Maxein) - #8313 macos: No gtk-macos-special equivalent for the Edit menu ("Start Dictation" / "Emoji & Symbols" missing with custom menubar) - #8354 GtkColumnView: sortable column headers expose no AT-SPI action, so sorting is unreachable for assistive technology - #8382 Media queries are not respected (Matthias Clasen) - #8390 svg: if the only animations in an svg are visibility animations elementa stay at initial value (Matthias Clasen) - #8400 Crash triggered by gtk_text_accessible_text_get_extents() (Matthias Clasen) - #8402 CUPS Secret Service authentication causes use-after-free in lookup_auth_info_cb() (Patrick Lambein) - !10132 Fix mismatches between parameters in four signal declarations and the corresponding class slots (Simeon Maxein) - !10245 gtkaccesskitcontext: Expose GActions as custom actions (Lukáš Tyrychtr) - !10265 macos: Default entries in Edit menu (Arjan Molenaar) - !10322 android: Remove empty_frame implementation (Benjamin Otte) - !10323 gtk: Repair action muxer subscriptions (Christian Hergert) - !10324 gsk: Allow conics with weight zero (Matthias Clasen) - !10328 CI: Switch glib CI back to a release (Benjamin Otte) - !10329 Update CI to be less likely to break (Benjamin Otte) - !10330 docs: Update release howto (Matthias Clasen) - !10331 Update Russian translation - !10333 Update Occitan translation - !10334 Update Norwegian Bokmål translation (Kjartan Maraas) - !10336 vulkan: Always update global buffer descriptor set (Benjamin Otte) - !10337 Update Serbian translation - !10338 Update French translation - !10339 svg: Fix run mode discrete (Matthias Clasen) - !10341 Update Basque translation (Asier Saratsua Garmendia) - !10343 ci: Download glib before configuring on MSYS2 (u9g) - !10344 Update Brazilian Portuguese translation - !10345 Update Spanish translation - !10346 memoryconvert: Pass the correct pointer address (Benjamin Otte) - !10349 Update Hungarian translation - !10350 Update Danish translation - !10353 Update Romanian translation - !10356 Update British English translation - !10359 curve: Add gsk_curve_get_extrema (Matthias Clasen) - !10360 Update Norwegian Nynorsk translation - !10361 Some frame clock fixes (Matthias Clasen) - !10365 gdkclipboard-x11: don't call a NULL converter (Marc-Antoine Perennou) - Basque (Asier Saratsua Garmendia) - Danish (Ask Hjorth Larsen) - English (United Kingdom) (Bruce Cowan) - French (Guillaume Bernard) - Hungarian (Balázs Úr) - Norwegian Nynorsk (Roy-Magne Mo) - Occitan (post 1500) (Quentin PAGÈS) - Portuguese (Brazil) (Rafael Coelho Costa) - Romanian (Antonio Marin) - Spanish (Daniel Mustieles García) Overview of Changes in 4.23.4, 01-09-2026 - #7879 AT-SPI attempts to use /org/a11y/atspi/cache before it is ready w/gtk 4 apps (Mike Gorse) - #8137 GtkListView misses items (Sergey Bugaev) - #8263 MacOS: GMainContext uses stale poll array after re-entrant GPollFunc - #8293 macos: Drop to GTK4 app is not handled instantly - #8320 Issue: Fix Memory Leaks and Potential Crashes in GTK Components (Matthias Clasen) - #8330 GtkConstraintLayout: non-required inequality constraints release an error variable twice (Emmanuele Bassi) - #8334 Wayland: SIGSEGV in text_input_preedit_hint() when using IBus Chewing in GTK 4 applications (Takao Fujiwara) - #8343 macOS: Massive memory leak when unfocusing a window with an open popup - #8351 (GtkTextView) Cutting, pasting, or deleting text does not reset virtual cursor position (Greg Beauchesne) - #8355 GtkText's input interceptor logic is too eager (Carlos Garnacho) - #8357 gtk4-demo empty context menu on tabs (Matthias Clasen) - #8359 The menu bar focusing with F10 is wrong - #8360 GtkAccessibleTextInterface mismatch between interface documentation and its implementations (Matthias Clasen) - #8362 `gtk_test_init` docs incorrect about locale (Matthias Clasen) - #8367 Shortcut labels in menus started showing keypad/numpad keys instead of regular ones (Sebastian Keller) - !6178 Enable ubsan in the sanitizers CI build (Matt Turner) - !9639 rendernode: Add bilevel opacity flag (Benjamin Otte) - !9778 listbase: Sanity-check alignment values (Sergey Bugaev) - !9982 inspector: Add a frametime overlay (Benjamin Otte) - !10049 gsk/vulkan: put the globals in a UBO instead of push constant (Ampernic) - !10120 macos: Instantly react to dropped content (Arjan Molenaar) - !10183 demos/gtk-demo: Drop nonexistent session-id property (Harsh Verma) - !10190 android/contentfile: Return NOT_SUPPORTED for foreign copy sources (Zhou Qiankang) - !10193 Update glib and GStreamer deps and move Fedora CI to F45 (Benjamin - !10212 Update Romanian translation - !10214 svg: Make symbolic rendering opt-in (Matthias Clasen) - !10215 svg: Add tests for symbolic rendering (Matthias Clasen) - !10216 macos(dnd): Use thread default context for populating the pastboard (Arjan Molenaar) - !10217 svg: Avoid a crash (Matthias Clasen) - !10219 Update Bulgarian translation - !10220 svg: Serialize gpa:rendering (Matthias Clasen) - !10221 svg: Serialize gpa:rendering (Matthias Clasen) - !10222 Update Persian translation - !10223 placesview: Small cleanup (Matthias Clasen) - !10226 Update Basque translation - !10231 Update Chinese (China) translation - !10232 Update Chinese (China) translation - !10233 Update Catalan translation - !10234 Update Catalan translation - !10235 various fixes (Benjamin Otte) - !10236 gsk: Fix a typo in quad printing (Matthias Clasen) - !10240 Update Galician translation (Francisco Diéguez Souto) - !10241 Update Hebrew translation - !10243 build: Fix static linking on Windows (Matthias Clasen, Christoph Reiter) - !10244 gsk/gpu: avoid GPU draw ops for zero-ink glyphs (Matthias Clasen) - !10247 Update Brazilian Portuguese translation - !10248 rendernodeparser: Allow naming paths (Benjamin Otte) - !10249 svg: Fix some state handling mishaps (Matthias Clasen) - !10250 icons: Add folder-projects-symbolic (g.willems) - !10251 adjustment: Respect the reduced-motion setting (g.willems) - !10252 gdkcontentserializer: close the string serializer's converter stream (Marc-Antoine Perennou) - !10253 color scale: Make vertical alpha scales work (Matthias Clasen) - !10260 svg: Avoid unnecessary rendering work (Christian Hergert) - !10261 macos: fix ungrab when popovers are open (Arjan Molenaar) - !10266 Add a setting for accent color (Matthias Clasen) - !10267 color scale: Make vertical alpha scales work (Matthias Clasen) - !10268 shortcutswindow: Allow documenting clicks (Matthias Clasen) - !10269 testutils: Small docs updates (Matthias Clasen) - !10270 Updated Lithuanian translation - !10271 various cleanups (Benjamin Otte) - !10275 svg: Be more careful (Matthias Clasen) - !10276 Update Swedish translation - !10277 Update Norwegian Bokmål translation - !10278 svg: Really apply states if animation is off (Matthias Clasen) - !10279 Update Korean translation - !10280 Update Chinese (China) translation - !10281 Update Slovenian translation - !10282 Update Kazakh translation - !10283 svg: Make svg_element_get_rect more robust (Matthias Clasen) - !10284 Update Georgian translation - !10285 Update Occitan translation - !10286 android: Expose gtk-accent-color XSetting (Florian "sp1rit"​) - !10287 gdk/wayland: Set app_id on xdg-activation token (Sergey Bugaev) - !10288 Update Ukrainian translation - !10289 Update Persian translation - !10291 Update Galician translation - !10292 Update Catalan translation - !10293 Update Bulgarian translation - !10294 Update Czech translation - !10295 Fix pomenubar behavior to match Gtk 3 (Lukáš Tyrychtr) - !10298 Update Hebrew translation - !10299 Update Hebrew translation - !10300 Add svg_element_get_polyline (Matthias Clasen) - !10301 Update Turkish translation - !10302 gtksettings: Add missing Since annotation (Maximiliano Sandoval) - !10303 label: Ensure the layout before computing accessible text extents - !10307 Update French translation - !10308 Update Uighur translation - !10309 Update Korean translation - !10310 Update Lithuanian translation - !10312 Update Basque translation - !10315 array: Assert that added items don't point into array (Benjamin Otte) - Basque (Asier Saratsua Garmendia) - Bulgarian (Alexander Alexandrov Shopov) - Catalan (Xavi Ivars) - Czech (Daniel Rusek) - Georgian (Ekaterine Papava) - Hebrew (Yaron Shahrabani) - Korean (Changwoo Ryu) - Lithuanian (Aurimas Černius) - Norwegian Bokmål (Kjartan Maraas) - Persian (Danial Behzadi) - Slovenian (Martin) - Swedish (Anders Jonsson) - Uighur (Abduqadir Abliz) - Ukrainian (Yuri Chornoivan) Overview of Changes in 4.23.3, 02-08-2026 - #223 Remove notebook->focus_tab (John Cardullo) - #6493 X11 selection clipboard consumes excessive CPU over time (Alexey Lukashov) - #8195 Animated SVG frequently disappears (John Cardullo) - #8287 Shaper: more state woes (Matthias Clasen) - #8288 Shaper: patch attachment properties aren't reflected in the sidebar (Matthias Clasen) - #8290 gdk_cairo_error_quark() failure (Matthias Clasen) - #8291 Type to search broken in Epiphany dialogs (Carlos Garnacho) - #8302 Change to GdkWaylandTopLevel breaks API (Matthias Clasen) - #8303 GLArea leaks memory on unrealize (Matthias Clasen) - #8304 Css text-decoration rule requires a resize to take effect (regression) (Matthias Clasen) - #8322 Setting tooltips on visible but unmapped widgets blocks on X11 (Tim Wright) - #8325 GtkSvg assertion failure on Remmina-symbolic.svg (Matthias Clasen) - #8329 application menu items with more than one shortcuts don't show any (Matthias Clasen) - #8335 GtkPicture dispose leaves self->paintable dangling, a second dispose steals a reference or unrefs freed memory (Melroy van den Berg) - !9648 gdk/wayland: Add support for wl_fixes.ack_global_remove (Vlad Zahorodnii) - !10071 events: Always collect motion history (Benjamin Otte) - !10089 widget: Allow to disable the visible focus timeout (Sergio Costas Rodriguez, Sergio Costas) - !10099 css: Support font-width (Matthias Clasen) - !10100 docs: Update orca developer tips link (Guido Günther) - !10102 Fix stroke bounds for circles (Matthias Clasen) - !10103 gtkimcontextquartz: Convert (again) IM cursor location to global coords (Carlos Garnacho) - !10104 svg: Avoid some criticals (Matthias Clasen) - !10106 Update Turkish translation - !10107 gpu: Don't scale caches too far (Benjamin Otte) - !10108 More frameclock work (Benjamin Otte) - !10110 gsk: Work a little harder to classify transforms (Matthias Clasen) - !10111 pathparser: various fixes (Benjamin Otte) - !10113 transformnode: Fix a typo (Matthias Clasen) - !10114 gtk/searchentry: Unset capture widget on dispose instead of finalize (Carlos Garnacho) - !10116 gdk: Use modern boilerplate (Matthias Clasen) - !10119 Revert "gtkpopover: Always set focus to a child during show" (g.willems) - !10121 svg: Handle text chunks better (Matthias Clasen) - !10122 frameclockidle: Fix deadlock due to underflow (Benjamin Otte) - !10123 svg: Small fixes for blur filters (Matthias Clasen) - !10124 svg: Small fixes for blur filters (Matthias Clasen) - !10126 x11: Don't update completed frames (Benjamin Otte) - !10127 svg: Fix cloning animateMotion (Matthias Clasen) - !10137 Update French translation - !10138 Update French translation - !10139 rendernodeparser: More flexible path parsing (Matthias Clasen) - !10141 frameclock: Redo predicted presentation time (Benjamin Otte) - !10143 wayland: Get rid of POPUP_STATE_WAITING_FOR_FRAME (Benjamin Otte) - !10144 Fix newest gobject-linter warnings (Benjamin Otte) - !10145 Add support for ext-background-effect (Benjamin Otte) - !10146 gdk/wayland: Avoid destroying toplevel icon buffers twice (Sterling- Ash) - !10147 Drop the shaper demo (Matthias Clasen) - !10149 svg: Add more private api (Matthias Clasen) - !10150 Improve rendernode-tool (Benjamin Otte) - !10151 svg: Fix new api (Matthias Clasen) - !10156 Update Slovenian translation - !10157 svg: list models (Matthias Clasen) - !10158 Pass GSK rendernode to GDK surface (Benjamin Otte) - !10159 svg: Add more private api (Matthias Clasen) - !10160 svg: Fully clear state when reloading (Matthias Clasen) - !10162 svg: Fix list model updates (Matthias Clasen) - !10163 textview: cache pixel height of X (Christian Hergert) - !10164 Some fixes for the new shape tree in shaper (Matthias Clasen) - !10166 wayland: Fix munmap() of the wrong pointer in the dmabuf format table (Andrew Gaspar) - !10167 svgwidget: Make resource loading repeatable (Matthias Clasen) - !10168 svg: Fix an oversight (Matthias Clasen) - !10169 build: Set hidden visibility via meson properties (Benjamin Otte) - !10170 Link our internal tests dynamically if we can - !10172 Some new SVG apis (Matthias Clasen) - !10173 Bump the meson dep (Matthias Clasen) - !10176 svg: Drop an unused function (Matthias Clasen) - !10177 ci: Use mold for linking (Matthias Clasen) - !10178 android/contentfile: Accept plain content URIs in from_uri (Zhou Qiankang) - !10180 Revert "Add a test for leaked symbols" (Matthias Clasen) - !10181 ci: Drop icon-editor related jobs (Matthias Clasen) - !10182 svg: Rename a function (Matthias Clasen) - !10185 svg: Fix svg_elmeent_delete (Matthias Clasen) - !10186 svg: Short-circuit setting specified values (Matthias Clasen) - !10187 Add a SvgElement::changed signal - !10189 svg: Make svg_value_equal NULL-safe (Matthias Clasen) - !10191 svg: Export more api for shaper (Matthias Clasen) - !10192 svg: Better approach to deps in shaper (Matthias Clasen) - !10195 svg: Fix linked list handling (Matthias Clasen) - !10196 application: Drop public save/restore API (Adrian Vovk) - !10197 input: Treat Super and Hyper as no-text modifiers (Matthias Clasen) - !10199 svg: Tweak the api (Matthias Clasen) - !10200 svg: Avoid a crash (Matthias Clasen) - !10204 build: Add a missing files() incantation (Matthias Clasen) - !10205 various small fixes (Benjamin Otte) - !10206 Update Czech translation - !10207 Update Slovenian translation - !10208 Update Georgian translation - !10209 Update Ukrainian translation - Czech (Daniel Rusek) - French (Guillaume Bernard) - Slovenian (Martin) - Turkish (Emin Tufan Çetin) - Ukrainian (Yuri Chornoivan) Overview of Changes in 4.23.2, 27-06-2026 - #6071 FileDialog filter becomes (None) when navigating via top bar - #7567 Black borders around windows in Windows (Dan Yeaw) - #7833 Input panel misplaced when typing with an input method in a GTKPopover widget (cdbg) - #8090 Gtk.IconPaintable SVG fallback wrong color (Matthias Clasen) - #8094 Devel style class is broken by SVG changes (Matthias Clasen) - #8096 Shaper: don't add countless states - #8098 Crashes with SIGSEGV in `gdk_wayland_toplevel_remove_from_session()` (Philip Withnall) - #8099 Documentation: Gtk Switch page is missing switch-state.png image (Matthias Clasen) - #8100 GtkSvg: Switching states quickly in Shaper doesn't work (Matthias Clasen) - #8101 Shaper: issue with weight (Matthias Clasen) - #8103 gtk3 refresh_rate calculation overflows on 32-bit targets (Alberto Garcia) - #8105 Shaper: Inkscape to Shaper breaks format (Matthias Clasen) - #8106 Some symbolic icons seems to not be recolored correctly (Matthias Clasen) - #8107 Unbalanced Snapshot.{save,restore} calls in libadwaita (Florian "sp1rit"​) - #8108 Shaper: cannot set stroke color to Foreground (Matthias Clasen) - #8111 a11y: PreferencesGroup isn't being described as container of ActionRows - #8125 svg: Animating hrefs does not work (Matthias Clasen) - #8139 A layout manager invoking a Cairo bug (Benjamin Otte) - !6922 Implement version 2 of text_input_v3 protocol (Carlos Garnacho) - !9016 spinner: Use an animated icon (Matthias Clasen) - !9184 filechooser: Fix filters being removed when navigating via the bar path (Jules Maselbas) - !9380 Iterate on save/restore support (Adrian Vovk) - !9411 text: Add option to include preedit as part of text (Florian "sp1rit"​) - !9437 The big renderer refactor (Benjamin Otte) - !9459 Use GtkSvg for all icons (Matthias Clasen) - !9505 Add clip masks (Benjamin Otte) - !9533 Add a new atlas allocator and rework caching APIs (Benjamin Otte) - !9545 memoryformat: Add packed 10bit formats (Benjamin Otte) - !9552 A bunch of fixes and speedups for 4.24 (Benjamin Otte) - !9557 CI: use native git in msys2 + remove base-devel (Christoph Reiter) - !9582 Update Polish translation - !9583 Update Polish translation - !9584 Update Chinese (China) translation - !9586 Fix typo (Urtsi Santsi) - !9588 Drop the gtk4-encode-symbolic tool (Matthias Clasen) - !9589 Drop po/README.translators (Matthias Clasen) - !9590 vulkan: fix GDK_VULKAN_FEATURE_SWAPCHAIN_MAINTENANCE check (Christoph Reiter) - !9591 icon paintable: Don't load unsupported SVG (Matthias Clasen) - !9597 Update macOS runner (René de Hesselle) - !9602 svg: parse `