-
Notifications
You must be signed in to change notification settings - Fork 405
Expand file tree
/
Copy pathNEWS
More file actions
6230 lines (5084 loc) · 187 KB
/
NEWS
File metadata and controls
6230 lines (5084 loc) · 187 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Overview of Changes in 4.23.0, xx-xx-xxxx
=========================================
* The gtk4-encode-symbolic tool for producing symbolic
png icons has been dropped. If you were using it,
ust ship the symbolic svg icons instead
Overview of Changes in 4.22.0, 06-03-2026
=========================================
* Bugs fixed:
- #8037 Regression: DropTarget's ::leave signal is no longer emitted when a
drop is finished (Matthias Clasen)
- #8079 Issues in the dnd demo in gtk4-demo (Matthias Clasen)
- #8080 Gtk program writes a "foo.png" file to current folder (Marco Trevisan
(Treviño))
- !9428 demos: Avoid main() from returning due to GApplication.quit (Florian
"sp1rit")
- !9455 win32: Drop the global inhibition counter (g.willems)
- !9547 Make WAYLAND_SOCKET handling more reliabe (Jonas Ådahl)
- !9553 svg: Allow unsetting values (Matthias Clasen)
- !9554 Update Japanese translation
- !9555 Update Korean translation
- !9556 Update Georgian translation
- !9558 accessiblehypertext: Fix doc formatting (Jamie Gravendeel)
- !9559 Update Georgian translation
- !9560 toplevel-wayland: Free a11y properties on finalize (Maximiliano
Sandoval)
- !9561 Update Hungarian translation
- !9563 svg: drop some api (Matthias Clasen)
- !9564 svg: Make the gpa:states condition more flexible (Matthias Clasen)
- !9565 svg: Add state names (Matthias Clasen)
- !9567 Update Portuguese translation (Hugo Carvalho)
- !9568 drop target: Emit the leave signal again (Matthias Clasen)
- !9570 Drop accidental files (Matthias Clasen)
- !9571 testsuite: Skip gestures if running with no seat (Alessandro Astone)
- !9572 droptarget: Fix unconditional leave on cross out (Niklas Wimmer)
- !9574 Update Bulgarian translation (Alexander Shopov)
- !9575 gtkcheckbutton: Don't use raw label for a11y purposes (Lukáš Tyrychtr)
- !9576 icons: Update from devkit (Jakub Steiner)
- !9577 wayland: Reset pending offset in Vulkan path (Matthias Clasen)
* Translation updates:
- Bulgarian (Alexander Shopov)
- Georgian (Ekaterine Papava)
- Hungarian (Balázs Úr)
- Japanese (Makoto Sakaguchi)
- Korean (Changwoo Ryu)
- Portuguese (Hugo Carvalho)
Overview of Changes in 4.21.6, 27-02-2026
=========================================
* GtkTryExpression is a new type of expression that allows for fallback
* GtkSvg:
- Setting states will have immediate effect when paused
- Various optimizations and crash fixes
* Media:
- The gstreamer backend will use gapless looping with gstreamer 1.28
* Printing:
- Avoid applying the n-copies setting twice
* Debugging:
- The inspector can show GSK profiling information with GSK_DEBUG=profile
- gtk4-rendernode-tool has gained a new filter command for node manipulation
* Bugs fixed:
- #5794 Click gesture doesn't reset properly (Carlos Garnacho)
- #6054 GtkSwitch ignores one click after dragging the handle (Carlos
Garnacho)
- #7432 unexpected enter event before popover close event (Alessandro Astone)
- #7605 Printing two copies prints four copies (Lucas Baudin)
- #7844 Debugging weird gesture behaviour (Carlos Garnacho)
- #7901 Add `key-capture-widget` property to `GtkSearchEntry` (Zoey Ahmed)
- #7930 "Broken accounting of active state for widget" (Carlos Garnacho)
- #7959 `GtkFilterListModel:watch-items` causes `GtkFilterListModel:n-items`
to not notify (Georges Basile Stavracas Neto)
- #7994 `Gtk.Expression.bind` fallback expression
- #8017 Icon Shaper crash when opening a file (Matthias Clasen)
- #8023 Icon editor crash when using a `rect` shape (Matthias Clasen)
- #8025 Shaper crashes when opening an icon with a line (Matthias Clasen)
- #8035 svg: rotate transformation does not behave as expected (Matthias
Clasen)
- #8038 GNOME Tour window is incorrectly sized/placed in GNOME 50 (Sebastian
Keller)
- #8040 Mismatches between GtkSvg and GtkIconPaintable for symbolic icons
(Matthias Clasen)
- #8041 Legacy icons from gtk4-demo aren't recolored in GtkSvg (Matthias
Clasen)
- #8042 4.21: Application Class demo doesn't work (Matthias Clasen)
- #8043 Instantaneously setting state for GtkSvg (Matthias Clasen)
- #8045 GtkFileFilter batch formats function (for glycin)
- #8051 Shaper: crash when opening the states popover (Matthias Clasen)
- #8053 gradient rendering bug (Benjamin Otte)
- #8055 Switching GtkSvg states doesn't work correctly
- #8064 Shaper: stroke width defaults changed (Matthias Clasen)
- !7541 gdk/wayland/dmabuf: Some cleanups (Marco Trevisan (Treviño))
- !8532 macos: fix deprecation messages (Arjan Molenaar)
- !8748 surface: Ignore events for unmapped surface (Alessandro Astone)
- !9289 gtkgstmediafile: Use gapless looping (Adrien Plazas)
- !9366 Plug GTask leaks (Sergey Bugaev)
- !9385 popoverbin: Take into account gesture coordinates and
triggers_context_menu (Maximiliano Sandoval)
- !9412 gtkwidget: Improve cancellation/denial of gestures on active input
(Carlos Garnacho)
- !9413 node editor: Stop using support-save (Matthias Clasen)
- !9414 android: Init cleanup & Add deprecation checker utility (Florian
"sp1rit")
- !9415 Add some more profiling information (Benjamin Otte)
- !9416 gtkapplication: Only keep window state if enabled (Adrian Vovk)
- !9417 ci: Use EXTRA_MESON_FLAGS in the gnomeos job (Jordan Petridis)
- !9420 snapshot: Avoid scaling textures (Matthias Clasen)
- !9421 application: Fix private comments (Maximiliano Sandoval)
- !9422 Update Lithuanian translation
- !9424 Add even more profiling and heatmap stuff (Benjamin Otte)
- !9425 Add gtk4-rendernode-tool filter (Benjamin Otte)
- !9427 icons: Apply stroking consistently (Matthias Clasen)
- !9429 svg: Fix a crash (Matthias Clasen)
- !9430 icon editor: Make it work again (Matthias Clasen)
- !9431 icon editor: Fix up shape editing (Matthias Clasen)
- !9432 Misc icon editor work (Matthias Clasen)
- !9433 icons: Open end arrows (Jakub Steiner)
- !9434 Various improvements, in particular glDisable(GL_BLEND) (Benjamin
Otte)
- !9435 docs: Some updates (Matthias Clasen)
- !9436 Tweak the icon paintable parser again (Matthias Clasen)
- !9438 node-editor: Improve zoom levels (Benjamin Otte)
- !9439 node editor: UI perfectionism (Matthias Clasen)
- !9440 Add GtkTryExpression (Jamie Gravendeel)
- !9442 icon paintable: Fix up visibility handling (Matthias Clasen)
- !9443 Revert "directory list: Fix directory changes" (Matthias Clasen)
- !9445 Add G_GNUC_WARN_UNUSED_RESULT to gsk_rect_intersection() (Benjamin
Otte)
- !9446 Improve GPU renderer handling of composite nodes (Benjamin Otte)
- !9447 demo/shadertoy: Provide GLES shaders (Florian "sp1rit")
- !9448 gsk: Remove duplicated line (Jules Maselbas)
- !9449 icons: Update to the latest (Jakub Steiner)
- !9451 Make gsk_render_node_get_children() public (Benjamin Otte)
- !9453 Fix up icons to work with the symbolic parser (Matthias Clasen)
- !9454 CI: Make Vulkan work (Benjamin Otte, Alessandro Astone)
- !9456 icon editor: Support open files by drag'n'drop (g.willems)
- !9457 icon editor: Add toggle to show the pixel grid (g.willems)
- !9460 vulkan: Fix type mismatch on 32-bit (Alessandro Astone)
- !9461 builder: Add initial attribute to constant element (Jamie Gravendeel)
- !9462 path: Fix alignment issue on 32-bit (Alessandro Astone)
- !9463 Updated Lithuanian translaton
- !9465 tools: Add rendernodetool filter texture (Benjamin Otte)
- !9466 Update Romanian translation
- !9467 Update Russian translation
- !9468 Update Bulgarian translation
- !9469 iconhelper: Respect pixel-size and -gtk-icon-size for icons (Alice
Mikhaylenko)
- !9470 inspector: Make data copyable (Matthias Clasen)
- !9471 vulkan: Use g_get_monotonic_time_ns() in debug code
- !9472 Update Kazakh translation
- !9473 Update Czech translation
- !9474 filefilter: Fix win32 native filechooser not used when any file filter
uses a mimetype rule (g.willems)
- !9477 rendernode: Remove leftover debug output from repeat nodes (Sebastian
Keller)
- !9478 pathbuilder: preallocate the arrays to fit a 4k page (Benjamin Otte)
- !9479 svg: Handle fill rules for clip-path (Matthias Clasen)
- !9480 svg: Optimize allocations a bit (Matthias Clasen)
- !9481 isolationnode: Add utility to check if features are needed (Benjamin
Otte, Matthias Clasen)
- !9482 gsk: Fix setting of the hdr flag (Matthias Clasen)
- !9485 testsuite: Make a test more robust (Matthias Clasen)
- !9486 snapshot: Mention optimization in the docs (Matthias Clasen)
- !9487 builder: Fix initial GObject constant expressions (Jamie Gravendeel)
- !9488 snapshot: Unpack container nodes (Benjamin Otte)
- !9490 testsuite: Add missing test files to meson.build (Alessandro Astone)
- !9491 svg: optimizations (Matthias Clasen)
- !9492 svg: Fix a corner case (Matthias Clasen)
- !9493 svg: Fix a corner case (Matthias Clasen)
- !9494 svg: Implement some conditional processing (Matthias Clasen)
- !9495 Pass D-Bus a11y details through gtk-shell protocol (Carlos Garnacho)
- !9497 rendernode tool: Allow matching nodes (Matthias Clasen)
- !9498 svg: Support a description (Matthias Clasen)
- !9499 icon editor: Some robustness for the state dialog (Matthias Clasen)
- !9500 gdk/wayland: Clean up EGL surface when detaching a GdkWaylandGLContext
(davidaf3)
- !9501 filefilter: Add plural mime_types function (Matthias Clasen, Peter
Eisenmann)
- !9502 svg: Support state updates when paused (Matthias Clasen)
- !9503 Update Ukrainian translation
- !9504 svg: More fixes for non-animated state changed (Matthias Clasen)
- !9506 Update German translation (Christian Kirbach)
- !9507 Update Greek translation
- !9509 Update Chinese (China) translation (luming zh)
- !9510 icon editor: Make a metadata expander (Matthias Clasen)
- !9511 svg: Fix animating filter attributes (Matthias Clasen)
- !9513 Update Finnish translation
- !9514 svg: Make empty language lists static (Matthias Clasen)
- !9515 Update Basque translation
- !9516 svg: Fix a corner case of pausing (Matthias Clasen)
- !9518 Update Slovenian translation
- !9519 More fixes for instantaneous state changes (Matthias Clasen)
- !9521 cssimagerecolor: Fix typos (Matthias Clasen)
- !9522 gsk/gi: Add missing since annotation (Bilal Elmoussaoui)
- !9524 wayland: Add some color mgmt v2 defines (Matthias Clasen)
- !9525 Update Spanish translation
- !9526 Update Lithuanian translation
- !9527 tooltip: Fix typo in comment (Robert Ancell)
- !9528 svg: Redo the morph transition (Matthias Clasen)
- !9529 Update Catalan translation
- !9531 Fix brokenness in widget active state maintenance (Carlos Garnacho)
- !9532 Stop using emblem-system-symbolic (Matthias Clasen)
- !9534 printing: do not do manual copies/number up when the printing portal
is used (Lucas Baudin)
- !9535 Small android improvements for 4.22 (Florian "sp1rit")
- !9536 gtkwindow: Also update resize cursor on
GtkEventControllerMotion::enter (Carlos Garnacho)
- !9537 Update Brazilian Portuguese translation
- !9539 Update Turkish translation
- !9540 Update Czech translation (AsciiWolf)
- !9541 docs: Clarify CSS custom properties support across GTK releases
(Leonid Zaburunov)
- !9543 svg crash fixes (Matthias Clasen)
- !9544 Update French translation
- !9546 Another round of crash fixes (Matthias Clasen)
* Translation updates:
- Basque (Asier Saratsua Garmendia)
- Bulgarian (Alexander Alexandrov Shopov)
- Catalan (Victor Dargallo)
- Chinese (China) (luming zh)
- Czech (AsciiWolf, Daniel Rusek)
- Finnish (Jiri Grönroos)
- French (Guillaume Bernard)
- German (Christian Kirbach)
- Greek, Modern (1453-) (Efstathios Iosifidis)
- Kazakh (Baurzhan Muftakhidinov)
- Lithuanian (Aurimas Černius, Aurimas Aurimas Černius)
- Portuguese (Brazil) (Rafael Fontenelle)
- Romanian (Antonio Marin)
- Russian (Artur S0)
- Slovenian (Martin)
- Spanish (Daniel Mustieles)
- Turkish (Emin Tufan Çetin)
- Ukrainian (Yuri Chornoivan)
Overview of Changes in 4.21.5, 30-01-2026
=========================================
* Early adopters have run into some problems with the state saving
APIs that were introduced earlier this cycle, so they have been
temporarily removed. We plan to reintroduce state saving early
in the next cycle.
* gsk:
- All of the shader glue code is now autogenerated
- Gradients can be interpolated in CSS (i.e. premultiplied)
or SVG style (non-premultiplied)
- Profiling support has been added (shown as 'heat maps' in the
inspector)
* svg:
- Filters operate in linear RGB (unless overwritten)
- Many correctness fixes
- The librsvg dependency has been dropped, since GTK can now
render svg images natively
* css:
- SVG filters can be used via data urls
* Bugs fixed:
- #6870 Feature Request: Add an "accessible ID" property to GtkAccessible
(Michael Weghorn)
- #7078 Memory leak with cairo renderer + wayland GDK backend (Matthias
Clasen)
- #7703 `g_file_copy` crashes if one of src/dest is `GdkAndroidContentFile`
and the other is not (Florian "sp1rit")
- #7957 Gtk.NeverTrigger() throws assertion error
- #7964 MacOS: closing a GtkWindow with native window controls does not
restore mouse events to other windows
- #7968 Crash in Drag Controller on a Finalizing Widget (Sergey Bugaev)
- #7970 File descriptors overflow in gtk4 applications, causing application
crash (Matthias Clasen)
- #7972 gsk_transform_invert doesn't do as advertised (Matthias Clasen)
- #7979 gsk_path_builder_add_circle segmentation fault (stackoverflow ?)
(Matthias Clasen)
- !7890 openuriportal: Use get_startup_notify_id directly (Maximiliano
Sandoval)
- !9264 Redo GtkAspectFrame (Sergey Bugaev)
- !9273 application: Support application inhibition and session-end detection
on win32 (g.willems)
- !9284 gdk/wayland: Map stylus buttons for BTN_BACK and BTN_FORWARD (Peter
Hutterer)
- !9321 Redo vertex attribute handling / draw call autogeneration (Benjamin
Otte)
- !9332 docs: Clarify gtk_widget_get_template_child widget_type parameter
(badcel)
- !9333 Drop the librsvg dependency (Matthias Clasen)
- !9338 ci: Cleanups (Matthias Clasen)
- !9339 svg: Add the color attribute (Matthias Clasen)
- !9340 svg: Handle font-weight and -size fully (Matthias Clasen)
- !9341 gdk: Parse hsl colors more correctly (Matthias Clasen)
- !9342 Drop some purposeless empty files (Sergey Bugaev)
- !9343 Let GdkArray use g_free_sized (Sergey Bugaev)
- !9346 Miscellaneous svg fixes (Matthias Clasen)
- !9347 split off some more nodes (Matthias Clasen)
- !9348 Revert "tests: Set the win_subsystem where needed" (g.willems)
- !9349 gsk: Split off shadow drawing (Matthias Clasen)
- !9351 Revert "ci: Allow vs2019 to fail" (Matthias Clasen)
- !9352 displacementnode: Fix copy/paste error (Benjamin Otte)
- !9354 macos: Determine location of native window controls reliably (Arjan
Molenaar)
- !9355 svg: Accumulated gradient fixes (Matthias Clasen)
- !9360 Support color-interpolation (Matthias Clasen)
- !9361 Handle zero-length gradients (Benjamin Otte)
- !9362 a11y: Introduce accessible ID (Michael Weghorn)
- !9363 svg fixes (Matthias Clasen)
- !9367 gsk: Add unpremultiplied gradient interpolation (Matthias Clasen)
- !9368 gdk: Fix compile error due to macro ordering (Benjamin Otte)
- !9369 textview: Mark return value of gtk_text_view_get_extra_menu() as
nullable (Sebastian Dröge)
- !9370 css: Support filter urls (Matthias Clasen)
- !9372 rendernodeparser: Escape debug message strings properly (Benjamin
Otte)
- !9374 gsk: Use GdkColorChannel for component transfer (Matthias Clasen)
- !9375 text: Remove cursor blinking when not sensitive (Emmanuele Bassi)
- !9376 Add rendernode performance monitoring (Benjamin Otte)
- !9377 gsk: Make arithmetic match svg implementations (Matthias Clasen)
- !9378 Do linear arithmetic compositing (Matthias Clasen)
- !9381 application: Rework host app portal registration (Adrian Vovk)
- !9382 gsk: Add a color state to component transfer nodes (Matthias Clasen)
- !9383 ci: Update macOS runner (René de Hesselle)
- !9384 build: Remove objcopy resource build (Benjamin Otte)
- !9386 ci: Update the Fedora image (Matthias Clasen)
- !9389 ci: Add a gnomeos build (Matthias Clasen)
- !9391 main: Fix an annotation (Sergey Bugaev)
- !9392 Misc memleak fixes (Matthias Clasen)
- !9393 Test node serialization (Matthias Clasen)
- !9395 application: Drop public save/restore API (Adrian Vovk)
- !9396 gtkcalendar: Add tooltips to the control buttons (Lukáš Tyrychtr)
- !9398 testsuite: Try to fix testutils build (Matthias Clasen)
- !9399 shortcuttrigger: Make GtkNeverTrigger a GObject singleton (Sergey
Bugaev)
- !9401 gsk: Set flags on nodes (Matthias Clasen)
- !9404 gtkatspicontext: Make sure that the ATs do not have a cached expanded
state (Lukáš Tyrychtr)
- !9405 svg: Try harder to resolve attributeName (Matthias Clasen)
- !9406 gsk: Do not include GSK_PREAMBLE in final shader (Florian "sp1rit")
* Translation updates:
- Georgian (Ekaterine Papava)
- Kazakh (Baurzhan Muftakhidinov)
- Russian (Artur S0)
Overview of Changes in 4.21.4, 05-01-2026
=========================================
* GtkPopoverBin is a new widget to help with
adding context menus (and other popovers) to
widgets that don't have them
* GtkSvg is a much more complete SVG renderer now
* Gsk supports displacement maps (no public api yet)
* GtkScrolledWindow scrollbar allocation has been fixed
* A11y overlays are now properly positioned on MacOS
* Bugs fixed:
- #7675 Convert included symbolics from fills to strokes (Jakub Steiner)
- #7774 macOS: Accesskit overlay rectangles misplaced when scale factor > 1
- #7793 Wacom tablet pressure stopped working on Wayland after GTK4 4.20.1
upgrade (Peter Hutterer)
- #7817 In testsuite/gdk/colorstate.c include of udmabuf.h seems errrorneous
(Matthias Clasen)
- #7818 GTK 4.21.0 compilation failure on RedHat 8.10 (Matthias Clasen)
- #7860 GtkLevelBar doesn't correctly update when value set when unmapped
(Ignacy Kuchciński)
- #7881 Backdrop blur leaves a transparent area along the edges (Benjamin
Otte)
- #7892 Shaper: canvas size not respected (Matthias Clasen)
- #7893 GtkGLArea + backdrop filter leak (Benjamin Otte)
- #7894 GL shader compilation error on Android/Mali (Benjamin Otte)
- #7906 Gtk.Svg: Investigate proper viewbox handling
- #7914 svg: ellipses w. cx ≠ cy render incorrectly (Matthias Clasen)
- #7922 Offloading broken for Showtime on main: "Only textures supported
(found GskOpacityNode)" (Benjamin Otte)
- #7928 Incorrect CSS crashes Gtk (Matthias Clasen)
- #7932 ICON in title bar has no margin (GTK4 aplications) (Matthias Clasen)
- #7934 svg use problem (Matthias Clasen)
- #7941 svg: Support viewBox on <marker> (Matthias Clasen)
- #7951 document-save-as-symbolic looks wrong in main (Matthias Clasen)
- #7962 issue for `<svg>` width with units (Matthias Clasen)
- !7901 scrolledwindow: Fix scrollbars allocation for all known cases (Khalid
Abu Shawarib)
- !8990 Scale access kit node bounding box for retina displays (Arjan
Molenaar)
- !9047 revealer: Push opacity through GtkSnapshot (Hari Rana)
- !9123 Add GtkPopoverBin
- !9148 CODING-STYLE: Tiny braces examples improvements (Adrien Plazas)
- !9189 gdk: clipboard: fix internal paste mime type resolution order
(Dominique Martinet)
- !9190 Gtk 4 21 3 (Matthias Clasen)
- !9191 icon editor: Allow grouping (Matthias Clasen)
- !9192 Fix typo in README.md: "cmompose" → "compose" (Azibom)
- !9193 svg: Cosmetics (Matthias Clasen)
- !9194 gdk: Cursors improvements (g.willems)
- !9195 gdkevents: Fix relative_direction annotations (Maximiliano Sandoval)
- !9197 docs: Fixes for RenderReplay and CompositeNode docstrings (Maximiliano
Sandoval)
- !9198 gtk: Fix target widget lookup for scroll events from "puck" devices
(Carlos Garnacho)
- !9200 Add GskRepeatNode::repeat and use it for CSS backdrop blur (Benjamin
Otte)
- !9201 icon editor: Fix path duplication (Matthias Clasen)
- !9202 Revert "Merge branch 'wip/jimmac/gtk4-stroke-symbolics' into 'main'"
- !9203 icon editor: Fix fill and stroke opacity (Matthias Clasen)
- !9204 rendernodeparser: Don't clamp values (Benjamin Otte)
- !9205 main: Allow avoiding only certain portals (Peter Eisenmann)
- !9206 svg: Add traditional symbolic compat (Matthias Clasen)
- !9207 svg: Improve the compat handling a bit (Matthias Clasen)
- !9208 CI: restore -Werror with MSYS2 (Christoph Reiter)
- !9209 CI: Move the Werror disabling where it belongs (Benjamin Otte)
- !9210 Refactor opacity computation (Benjamin Otte)
- !9211 reftests: Also include the widget property in the test (Benjamin Otte)
- !9212 icon editor: Don't ursurp Ctrl-a (Matthias Clasen)
- !9215 display/wayland: Gracefully handle dispose being called twice (Jonas
Ådahl)
- !9218 svg: Tweak serialize flags (Matthias Clasen)
- !9219 nodeparser: Don't name nested "duplicates" (Benjamin Otte)
- !9220 svg: Use the viewBox transformation specified in the spec (Florian
"sp1rit")
- !9221 gdkglcontext-win32-wgl.c: Fix running on 32-bit Windows (Chun-wei Fan)
- !9223 revealer: Fix fade slide direction (Alice Mikhaylenko)
- !9224 icon editor: Cosmetics
- !9225 svg: Never try to render <defs>
- !9226 Refactor offload code to have it deal with copy/paste nodes (Benjamin
Otte)
- !9227 ci: Disable the msys2-ucrt64 job (Matthias Clasen)
- !9228 texthandle: Reposition when surface transform changes (Sergey Bugaev)
- !9229 svg: Parse dash arrays more carefully (Matthias Clasen)
- !9230 Make diffing code work with copy/paste nodes (Benjamin Otte)
- !9231 image: Fix baseline rounding issues (Adrien Plazas)
- !9232 svg: Handle bounding boxes better (Matthias Clasen)
- !9233 inspector: Make copy/paste nodes display properly (Benjamin Otte)
- !9234 CI: install sassc package for MSYS2 (Christoph Reiter)
- !9235 Add GskIsolationNode (Benjamin Otte)
- !9236 CI: add a MSYS2 job for clang64 (Christoph Reiter)
- !9237 svg: Cosmetics (Matthias Clasen)
- !9238 Misc svg parsing improvements (Matthias Clasen)
- !9239 svg: Handle xlink:href (Matthias Clasen)
- !9240 copypaste: Fix memleak (Benjamin Otte)
- !9241 svg: Added support for `<text>` & `<tspan>` nodes (Florian "sp1rit",
Matthias Clasen)
- !9242 CI: enable ccache for the msvc job (Christoph Reiter)
- !9243 svg: Fix a few copy/paste errors (Matthias Clasen)
- !9245 svg: Fix a serialization oversight (Matthias Clasen)
- !9246 offload: Don't skip component transfer nodes (Benjamin Otte)
- !9248 inspector: Be more consistent (Matthias Clasen)
- !9249 svg: Small refactoring (Matthias Clasen)
- !9250 svg: Some parsing fixes (Matthias Clasen)
- !9252 svg: Handle inkscapes keywords (Matthias Clasen)
- !9253 svg: Better isolation (Matthias Clasen)
- !9257 gradients: Check bouds for equality when diffing (Benjamin Otte)
- !9258 svg: Parse paint order more completely (Matthias Clasen)
- !9259 svg: Add assertions (Matthias Clasen)
- !9260 svg: Support `<marker>` (Matthias Clasen)
- !9261 a11y: Fix the accessible range max value (g.willems)
- !9262 svg: Handle overflow (Matthias Clasen)
- !9266 ci: Build Node Editor application (Florian "sp1rit")
- !9267 svg: Support nested `<svg>` (Matthias Clasen)
- !9271 svg: Move some code around (Matthias Clasen)
- !9272 svg: Cosmetics (Matthias Clasen)
- !9274 svg: Stop allocating too many values (Matthias Clasen)
- !9275 widget: Fix baseline-center valign (Adrien Plazas)
- !9276 svg: Rework href values a bit (Matthias Clasen)
- !9277 svg: Fix the hue-rotate filter (Matthias Clasen)
- !9279 snapshot: Rename variables (Benjamin Otte)
- !9280 svg: Support `<filter>` (Benjamin Otte, Matthias Clasen)
- !9281 Register GskRenderReplay as a GType
- !9282 macos: Fix uninitialized variables when attaching vulkan context to a
surface (Arjan Molenaar)
- !9283 svg: Fix some issues with marker placement (Matthias Clasen)
- !9285 testsuite: Small improvement (Matthias Clasen)
- !9290 svg: Implement gradient templates (Matthias Clasen)
- !9291 svg: support stroking for text (Matthias Clasen)
- !9292 svg: Tweak sizing behavior (Matthias Clasen)
- !9293 svg: Map Gsk.Repeat onto the correct spread method value (Florian
"sp1rit")
- !9294 gsk: Handle zero-length paths without crashing (Matthias Clasen)
- !9295 gtk-demo: Use stroking in the drawing area demo (Benjamin Otte,
Matthias Clasen)
- !9296 svg: Fix handling of empty filters (Matthias Clasen)
- !9297 svg-compare: Add some comfort (Matthias Clasen)
- !9298 svg: Implement from-by animation (Matthias Clasen)
- !9299 path: Allow to preserve structure (Matthias Clasen)
- !9300 svg: Add svg_value_distance (Matthias Clasen)
- !9301 svg: Fix hueRotate filters (Matthias Clasen)
- !9302 gsk: Drop a leftover typedef (Matthias Clasen)
- !9303 svg: Fix bounding boxes for images (Matthias Clasen)
- !9304 Implement svgs arithmetic compositing (Matthias Clasen)
- !9306 icon editor: Fix example 6 (Matthias Clasen)
- !9307 Cosmetic: Typo fix (Matthias Clasen)
- !9308 svg-compare: Fix a crash in argument parsing (Matthias Clasen)
- !9309 svg: Allow embedding fonts (Matthias Clasen)
- !9310 svg: limit rendering up to an upper bound (Florian "sp1rit")
- !9311 macos: Fix crash due to drag-n-drop on macOS 26 (Arjan Molenaar)
- !9312 svg: Support symbols (Matthias Clasen)
- !9313 gtk: Fix since annotation (Bilal Elmoussaoui)
- !9316 columnview: Fix configuring an adjustment (Sergey Bugaev)
- !9317 droptarget: Implement reset (Sergey Bugaev)
- !9318 icon editor: Make it work again (Matthias Clasen)
- !9319 svg: Implement non-scaling strokes (Matthias Clasen)
- !9323 svg: Clean up some parsing (Matthias Clasen)
- !9324 Fix up included icons (Matthias Clasen)
- !9325 Fix up feImage a bit (Matthias Clasen)
- !9327 svg: Cache the render node (Matthias Clasen)
- !9330 svg: Don't accept empty strings as numbers (Matthias Clasen)
- !9331 svg: Reorganize shape attributes (Matthias Clasen)
* Translation updates:
- Chinese (Taiwan) (Cheng-Chia Tseng)
- Georgian (Ekaterine Papava)
- Indonesian (Andika Triwidada)
- Occitan (post 1500) (Quentin PAGÈS)
- Russian (Danil Gashigullin)
- Slovenian (Martin)
- Uzbek (Baxrom Raxmatov)
Overview of Changes in 4.21.3, 24-11-2025
=========================================
This is quick follow-up release to address some memory leaks and
other issues with the new backdrop-filter functionality.
* Bugs fixed:
- #7880 Backdrop filter does not correctly interact with opacity (Benjamin
Otte)
- #7882 Backdrop filter does not correctly behave with scale (Benjamin Otte)
- #7883 gtk 4.20.3 fails to build on 32-bit architectures (Benjamin Otte)
- #7885 Backdrop filter does not work with offloaded content (Benjamin Otte)
- #7888 Dynamic cursors are incorrectly sized in mixed-DPI environment
(Matthias Clasen)
- #7889 Backdrop filter doesn't work with filter: opacity() (Benjamin Otte)
* Changes:
- !9168 svg: Support the paint-order attribute (Matthias Clasen)
- !9169 icon editor: Use gsk_path_equal (Matthias Clasen)
- !9170 vulkan: Don't treat Vulkan objects as pointers or 32bit breaks
(Benjamin Otte)
- !9172 rendernodeparser: Remove outdated warning (Benjamin Otte)
- !9173 filechooser: Drop unused defines (Guido Günther)
- !9174 icon editor: Use GtkSvg for storage (Matthias Clasen)
- !9175 Split nodes on 'b' (Matthias Clasen)
- !9176 gtk-demo: Use blur-overlay in a demo (Matthias Clasen)
- !9177 gsk: Avoid a double-free (Matthias Clasen)
- !9179 icon editor: Drop a property (Matthias Clasen)
- !9181 icon editor: Allow setting opacity (Matthias Clasen)
- !9182 For main (Matthias Clasen)
- !9183 icon editor: Allow setting miter limit (Matthias Clasen)
- !9186 icon editor: Rename PathEditor to ShapeEditor (Matthias Clasen)
- !9187 gsk: Add GskRenderNode.copy_mode (Benjamin Otte)
- !9188 icon editor: Rename PathEditor to ShapeEditor (Matthias Clasen)
* Translation updates:
- Slovenian (Martin)
- Turkish (Sabri Ünal)
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)
- https://gitlab.freedesktop.org/mesa/mesa/-/issues/
* 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] (Matthias Clasen)
- !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)
Overview of Changes in 4.21.1, 29-10-2025
=========================================
* GtkSvg is a new paintable implementation that parses
a subset of SVG, including animations.
* Bugs fixed:
- #7414 Active state is not reset when releasing click outside of popup but
inside main window (Carlos Garnacho)
- #7671 GL fallback for YCbCr formats on Vulkan is broken (Benjamin Otte)
- #7676 `GSK_RENDERER=ngl` makes MacBook Pro's with Dual GPU's use the most
power-hungry one by default
- #7761 MacOS: \<Control\> is mapped differently based on
gtk_application_set_accels_for_action call location
- #7795 Change in scrolling behavior (Carlos Garnacho, lbaudin)
- #7801 Unaligned access in gdk/gdkmemoryformat.c causes testsuite crashes on
SPARC (Gregor Riepl)
- #7802 [4.21] CSS-defined icons like GtkSpinner are only shown when present
in the gtk icon theme (Jakub Steiner)
- #7813 Shaper: Cannot parse SVG (Matthias Clasen)
- #7823 svg not scaled with display scale since switch to librsvg (Matthias
Clasen)
- #7831 Crash with "CSS Blend Modes" demo (Urtsi Santsi)
- #7841 Suspected typo "symbolc" in docs/reference/gtk/icon-format.md
(Matthias Clasen)
- #7848 GTK 4.18: Default GdkDisplay gets unreferenced when offscreen
rendering via secondary display, causing crash (Benjamin Otte)
* Changes:
- !8041 dropdown: Allow selecting items via touchscreen? (Florian "sp1rit")
- !9006 path paintable: Be more relaxed about attaching (Matthias Clasen)
- !9007 gtk-demo: Fix loading of gpa files (Matthias Clasen)
- !9009 icon editor: examples (Jakub Steiner)
- !9010 gtk/symbolicpaintable: Fix a leak (Khalid Abu Shawarib)
- !9011 macos(docs): update documentation on graphics switching and keyboard
shortcuts (Arjan Molenaar)
- !9013 path paintable: Add repeat count (Matthias Clasen)
- !9015 icon editor: Visualize transition-easing too (Matthias Clasen)
- !9018 icon editor: Preserve shape information better (Matthias Clasen)
- !9019 icon editor: Preserve shape information better (René de Hesselle,
Matthias Clasen)
- !9023 dnd: Mark gtk_drop_target_async_get_formats() return value as
`transfer none`
- !9026 revealer: Add fade-slide values (Hari Rana)
- !9027 revealer: Minor refactor (Hari Rana)
- !9029 colorchooserdialog: Make scrollable to fit narrow screens (Stefan
Hansson)
- !9030 Mark free_to_* methods as transfer full (Sergey Bugaev)
- !9032 Plug a minor memory leak (Matthias Clasen)
- !9033 docs: fix gi-docgen errors in 4.20.2 (oreo639)
- !9034 path paintable: Fix an oversight (Matthias Clasen)
- !9035 path paintable: Fix an oversight (Matthias Clasen)
- !9038 path paintable: Drop general animations (Matthias Clasen)
- !9039 icon editor: Drop the state check (Matthias Clasen)
- !9041 docs: Update GtkSettings docs (Matthias Clasen)
- !9048 gtkapplication-wayland: Iterate inhibitors safely while freeing
(Alessandro Astone)
- !9049 icon editor: Some UI tweaks (Matthias Clasen)
- !9051 Make gdk_rgba_print public (Matthias Clasen)
- !9053 gtk: docs: Fix docs for session restore signals (Maximiliano Sandoval)
- !9054 gsk: Plug a memory leak (Matthias Clasen)
- !9056 Fix various Vulkan YUV handling issues (Benjamin Otte)
- !9057 Add an SVG renderer (Matthias Clasen)
- !9059 x11: Restore the logic for tracking compositor presence (Sergey
Bugaev)
- !9060 gdk: Remove GDK_MEMORY_U16 depth (Benjamin Otte)
- !9061 docs: Update GDK_GL_DISABLE docs to match implementation (Benjamin
Otte)
- !9062 a11y: Centralize the logic determining whether an accessible is a
password input (Lukáš Tyrychtr, Matthias Clasen)
- !9063 icon editor: Add export (Matthias Clasen)
- !9064 svg: Fix max state tracking (Matthias Clasen)
- !9065 svg: Fix max state tracking (Matthias Clasen)
- !9066 node-editor: Fix dark mode toggle (Matthias Clasen)
- !9069 svg: Resolve symbolic colors consistently (Matthias Clasen)
- !9070 tests: Robustness fix (Matthias Clasen)
- !9071 Add assertions to quiet the compiler (Matthias Clasen)
- !9073 svg: Parse style (Matthias Clasen)
- !9074 svg: Drop an unused argument (Matthias Clasen)
- !9075 vulkan: Fix YUYV values when uploading images (Benjamin Otte)
- !9077 Add setting and CSS media query for reduced motion (Emmanuele Bassi)
- !9078 icon editor: misc fixes (Juan Pablo Ugarte)
- !9080 tools: Cosmetics (Matthias Clasen)
- !9081 svg: Small cleanup (Matthias Clasen)
- !9082 Make it possible to test rendering errors (Matthias Clasen)
- !9084 docs: Remove gtk4-icon-browser from Tools and Demos (Chris Mayo)
- !9088 Rename GradientUnits to CoordUnits
- !9089 Only build CUPS backend when enabled (Dan Yeaw)
- !9090 node-editor: syntax-hilight comments
* Translation updates:
- Basque (Asier Saratsua Garmendia)
- English (United Kingdom) (Bruce Cowan)
- Slovenian (Martin)
- Thai (Aefgh Threenine)
- Uighur (Abduqadir Abliz)
Overview of Changes in 4.21.0, 29-09-2025
=========================================
* Symbolic icons can now be stateful and animated. A new CSS
property, -gtk-icon-weight, can be used to modify the weight
of strokes. The extensions to the icon format are described here:
https://docs.gtk.org/gtk4/icon-format.html
* GTK includes a new org.gtk.Shaper demo that serves as an
editor for the new symbolic icon format.
* All included icons have been converted to use strokes
* The Wayland backend relies on the portal for settings
* The Wayland backend implements the experimental
xx-session-management protocol. To enable it, use
GDK_DEBUG=session-mgmt
* GtkApplication has gained support for state saving.
To try this out you need to use gnome-session main
and enable the session management protocol
* A GtkAccessibleHypertext interface lets accessibles provide
information about embedded links
* GtkAccessibleText can set caret and selection positions
* Accessibility for dropdowns, list widgets, switches and entries
has been improved
* GtkFileLauncher can provide writable access to files when used
in a flatpak
* Some enumerations have had their introspected value names corrected:
GdkPaintableFlags, GdkFullscreenMode, GskPathForeachFlags,
GtkConstraintVflParserError
This is an API change for language bindings
* GLib 2.84 is required now
* Bugs fixed:
- #5712 Context menus in KGX and g-t-e fail to activate actions on X11
- #7309 Use the new accessible "switch" role instead of toggle button /
checkbox for Gtk switches (Matthias Clasen)
- #7602 Problems with GtkBuilder releasing references (Matthias Clasen)
- #7727 Stop using gsettings as fallback in the wayland settings code
(Matthias Clasen)
- #7739 a11y: Add caret and selection setters to GtkAccessibleText (Matthias
Clasen)
- #7755 Only the first text-shadow value gets applied when there are multiple
(regression) (Matthias Clasen)
- #7757 Make sense of AtkHyperlink (Matthias Clasen)
- #7766 gtk4-icon-editor does not seem to run with lang that set another
decimal symbol
- #7767 macOS: Main menu items with "action" and "target" set do not work
(Thomas Holder)
- #7777 shaper: Add separate alpha slider (Matthias Clasen)
* Changes:
- !6462 gdk/x11: Track enter/leave events on grab surface while button is held
(gldrk)
- !8502 State saving support (Matthias Clasen, Carlos Garnacho, Adrian Vovk)
- !8687 builder: Come clean about floating references (Matthias Clasen)
- !8892 Add GtkPathPaintable (Matthias Clasen)
- !8914 accessibletext: Add setters (Matthias Clasen)
- !8925 Add threading documentation (Matthias Clasen)
- !8928 surface: Mark region as nullable in set_input_region (João Pereira)
- !8930 settings: Call g_value_unset() after _gtk_settings_parse_convert()
(Takao Fujiwara)
- !8931 wayland: Invert flipped transforms (Robert Mader)
- !8933 Fix upright text carets (Matthias Clasen)
- !8935 gsk: Drop an unused private flag (Matthias Clasen)
- !8936 Some small gsk fixes (Matthias Clasen)
- !8937 text: Apply all text shadows (Matthias Clasen)
- !8945 symbolics: use strokes (Jakub Steiner, Matthias Clasen)
- !8946 wayland: Avoid a cursor size of zero (Matthias Clasen)
- !8947 Fix a broken cast (Matthias Clasen)
- !8948 build: Require GLib 2.84 (Matthias Clasen)
- !8949 ci: Remove "allow_failure" in MacOS build (sid)
- !8950 a11y atspi: No more report error for AT-SPI Text SetSelection (Michael
Weghorn)
- !8952 Fix memory leak with GtkPathBar (evan-razzaque)
- !8953 Some follow-up things for animated icons (Matthias Clasen)
- !8954 path paintable: Respect origin for attachments (Matthias Clasen)
- !8955 docs: Typo fix (tytan652)
- !8956 im context: add invalid-composition signal (Cristian Iacovlev)
- !8957 path paintable: Rename the blur transition (Matthias Clasen)
- !8958 Add prefix g-i annotation for some enums (VBB)
- !8959 icon-editor: Ensure dot decimal point for float format (tytan652)
- !8960 path paintable: Be more careful (Matthias Clasen)
- !8961 gtk-demo: Refresh the images demo (Matthias Clasen)
- !8962 Set the GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT in GtkDropDown (Matthias
Clasen)
- !8963 entry: Improve accessiblity (Matthias Clasen)
- !8964 Listview accessibility
- !8967 Portal check: activate the service if needed (Adrian Vovk)
- !8968 application: Document state vfuncs (Maximiliano Sandoval)
- !8969 application: Fix Since tags (Matthias Clasen)
- !8971 path paintable: Reduce weight variation (Matthias Clasen)
- !8972 gtkapplication-wayland: simplify chainup (Georges Basile Stavracas
Neto)
- !8973 Tweak stroke width range again (Matthias Clasen)
- !8974 gdk: Fix a string leak (Alice Mikhaylenko)
- !8975 icons: Stroke only stock (Jakub Steiner)
- !8976 picture: Allow symbolic paintables (Matthias Clasen)
- !8977 wip: Reduce the internal icontheme (Matthias Clasen)
- !8979 icon editor: Don't use a tempfile (Matthias Clasen)
- !8981 file launcher: Make writable work (Matthias Clasen)
- !8982 filterlistmodel: Fix position when emitting items-changed for item
watches (Kévin Commaille)
- !8984 icon editor: Allow setting initial state (Matthias Clasen)
- !8985 icon editor: Durations are now in ms (Matthias Clasen)
- !8987 gdk: Use longer timeout to reach to portals (Valentin David)
- !8988 css: Add an icon weight property (Matthias Clasen)
- !8989 Update expected errors for css tests (Matthias Clasen)
- !8991 menutracker: Add some assertions (Matthias Clasen)
* Translation updates:
- Catalan (Jordi Mas i Hernandez)
- Chinese (China) (luming zh)
- Czech (Daniel Rusek)
- Danish (Ask Hjorth Larsen)
- Esperanto (Kristjan SCHMIDT)
- Galician (Francisco Diéguez Souto)
- Georgian (Ekaterine Papava)
- Lithuanian (Aurimas Černius)
- Persian (Danial Behzadi)
- Portuguese (Hugo Carvalho)
- Portuguese (Brazil) (Juliano de Souza Camargo)
- Romanian (Antonio Marin)
- Slovenian (Martin)
- Spanish (Daniel Mustieles)
- Turkish (Sabri Ünal)
- Ukrainian (Yuri Chornoivan)
Overview of Changes in 4.20.1, 08-09-2025
=========================================
* Bugs fixed:
- #6666 Second Drag-and-Drop operation causes Gtk-CRITICAL messages at every
event (Matthias Clasen)
- #7345 columnview focus problem with menus
- #7717 GtkTextView with css padding shows offscreen widgets in upper left
corner (Matthias Clasen)
- #7724 Occasional crashes in gsk_gl_device_setup_samplers() (Benjamin Otte)
- #7729 Gtk.Entry: Cursor disappears when reaching right border (Matthias
Clasen)
- #7731 GTK_THEME environment variable not working properly with GTK4-4.20
(Matthias Clasen)
- #7734 MacOS: dyld: file does not start with MH_MAGIC[_64]: 0x00000000
0x00000000 (sid)
* Changes:
- !8888 4.20.0 (Matthias Clasen)
- !8889 Plug some memory leaks (Matthias Clasen)
- !8890 node-editor: Plug GskTransform leak (Maximiliano Sandoval)
- !8891 macos: do not explicitly disable window controls (Arjan Molenaar)
- !8893 text: Only clip the text drawing (Matthias Clasen)
- !8894 Improve DND interoperability with kwin (Matthias Clasen)
- !8896 Make GTK_THEME work as before (Matthias Clasen)
- !8897 columnview: Fix arrow navigation in a nested widget inside a cell
(Lukáš Tyrychtr)
- !8898 docs: Fix invalid picture elements (Chris Mayo)
- !8899 docs: Fix Image.set_pixel_size reference to set_icon_size (Chris Mayo)
- !8900 offload: Do not try to raise subsurface above itself (Robert Mader)
- !8902 Try harder to fix caret visibility in entries (Matthias Clasen)
- !8904 various small fixes (Benjamin Otte)
- !8905 Modernize the app chooser (Matthias Clasen)
- !8907 colorchooser: Fix up editor focus (Matthias Clasen)
- !8908 filechooser: Improve error handling (Matthias Clasen)
- !8909 build: update to accesskit-c v0.17.0 (Christoph Reiter)
- !8910 a11y: Give spinner a progressbar role (Matthias Clasen)
- !8911 fontchooser: Make lists more keynav-friendly (Matthias Clasen)
- !8912 textview: Connect to detailed can-undo/can-redo notify signals (Julian
Sparber)
- !8913 gtk-demo: Support svg without width/height (Matthias Clasen)
- !8916 docs: Add illustrations for component transfer (Matthias Clasen)
- !8917 gtk-demo: Add a demo for sections (Matthias Clasen)
- !8918 gsk: Tweak the formula for component transfer (Matthias Clasen)
- !8919 Fix MacOS build failure (sid)
- !8920 demos: Improve the image filtering demo (Matthias Clasen)
- !8921 demos: Memory leak fixes (Matthias Clasen)
- !8922 Adapt to deprecations (Matthias Clasen)
- !8924 docs: Fix broken links (Chris Mayo)
- !8926 scrolledwindow: Improve behavior if nested in other scrollables
(Carlos Garnacho)
* Translation updates:
- Basque (Asier Saratsua Garmendia)
- Catalan (Jordi Mas i Hernandez, Jordi Mas)
- Chinese (China) (luming zh)
- Finnish (Jiri Grönroos)
- Georgian (Ekaterine Papava)
- Hebrew (Yosef Or Boczko)
- Hungarian (Balázs Úr)
- Japanese (Makoto Sakaguchi)
- Korean (Changwoo Ryu)
- Lithuanian (Aurimas Aurimas Černius)
- Persian (Danial Behzadi)
- Portuguese (Brazil) (Rafael Fontenelle)
- Russian (Artur S0)
- Swedish (Anders Jonsson)
- Ukrainian (Yuri Chornoivan)
Overview of Changes in 4.20.0, 29-08-2025
=========================================
* Bugs fixed:
- #7695 gdk-win32: unmaximize doesn't restore the original size
- #7702 Should GTK_ACCESSIBLE_ROLE_STATUS really be NAME_PROHIBITED?
* Changes:
- !8851 gstreamer: Stop GstPlay before dropping the ref (Robert Mader)
- !8871 gtk/filterlistmodel: Emit items-changed for item watches (Georges
Basile Stavracas Neto)