Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libadwaita for openSUSE:Factory checked in at 2026-01-06 17:42:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libadwaita (Old) and /work/SRC/openSUSE:Factory/.libadwaita.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libadwaita" Tue Jan 6 17:42:23 2026 rev:48 rq:1325362 version:1.8.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libadwaita/libadwaita.changes 2025-11-25 15:52:01.076384934 +0100 +++ /work/SRC/openSUSE:Factory/.libadwaita.new.1928/libadwaita.changes 2026-01-06 17:43:26.614843894 +0100 @@ -1,0 +2,25 @@ +Sun Jan 4 13:15:02 UTC 2026 - Bjørn Lie <[email protected]> + +- Update to version 1.8.3: + + Adaptive preview: Fix a leak when taking screenshots + + AdwAboutDialog: Fix an accessibility warning + + AdwAlert/MessageDialog: Fix extra padding with hidden extra + child + + AdwInlineViewSwitcher: Limit badges to 999+ to match + AdwViewSwitcher + + AdwNavigationView: + - Fix a crash + - Make :navigation-stack more robust + + AdwPreferencesGroup: Fix accessible label + + AdwPreferencesPage: Revert incompatible children warning from + 1.8.2 + + AdwShortcutsDialog + - Implement search activation + - Fix an accessibility warning + + AdwStatusPage: Implement focus() and grab_focus() + + AdwTabOverview: Implement search activation + + AdwViewStack: Fix accessible labels with underlines + + Docs: Fix banner-suggested screenshot + + Updated translations. + +------------------------------------------------------------------- Old: ---- libadwaita-1.8.2.obscpio New: ---- libadwaita-1.8.3.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libadwaita.spec ++++++ --- /var/tmp/diff_new_pack.DcyQCL/_old 2026-01-06 17:43:27.238868995 +0100 +++ /var/tmp/diff_new_pack.DcyQCL/_new 2026-01-06 17:43:27.242869156 +0100 @@ -1,7 +1,7 @@ # # spec file for package libadwaita # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: libadwaita -Version: 1.8.2 +Version: 1.8.3 Release: 0 Summary: Building blocks for modern GNOME applications License: LGPL-2.1-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.DcyQCL/_old 2026-01-06 17:43:27.274870444 +0100 +++ /var/tmp/diff_new_pack.DcyQCL/_new 2026-01-06 17:43:27.278870604 +0100 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="manual"> <param name="url">https://gitlab.gnome.org/GNOME/libadwaita.git</param> <param name="scm">git</param> - <param name="revision">1.8.2</param> + <param name="revision">1.8.3</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ libadwaita-1.8.2.obscpio -> libadwaita-1.8.3.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/NEWS new/libadwaita-1.8.3/NEWS --- old/libadwaita-1.8.2/NEWS 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/NEWS 2026-01-03 18:51:26.000000000 +0100 @@ -1,4 +1,37 @@ ============= +Version 1.8.3 +============= + +- Adaptive preview + - Fix a leak when taking screenshots +- AdwAboutDialog + - Fix an accessibility warning +- AdwAlert/MessageDialog + - Fix extra padding with hidden extra child +- AdwInlineViewSwitcher + - Limit badges to 999+ to match AdwViewSwitcher +- AdwNavigationView + - Fix a crash + - Make :navigation-stack more robust +- AdwPreferencesGroup + - Fix accessible label +- AdwPreferencesPage + - Revert incompatible children warning from 1.8.2 +- AdwShortcutsDialog + - Implement search activation + - Fix an accessibility warning +- AdwStatusPage + - Implement focus() and grab_focus() +- AdwTabOverview + - Implement search activation +- AdwViewStack + - Fix accessible labels with underlines +- Docs + - Fix banner-suggested screenshot +- Translation updates + - German + +============= Version 1.8.2 ============= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/doc/libadwaita.toml.in new/libadwaita-1.8.3/doc/libadwaita.toml.in --- old/libadwaita-1.8.2/doc/libadwaita.toml.in 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/doc/libadwaita.toml.in 2026-01-03 18:51:26.000000000 +0100 @@ -124,6 +124,8 @@ "images/avatar-dark.png", "images/banner.png", "images/banner-dark.png", + "images/banner-suggested.png", + "images/banner-suggested-dark.png", "images/bin.png", "images/bin-dark.png", "images/bottom-sheet.png", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/meson.build new/libadwaita-1.8.3/meson.build --- old/libadwaita-1.8.2/meson.build 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/meson.build 2026-01-03 18:51:26.000000000 +0100 @@ -1,5 +1,5 @@ project('libadwaita', 'c', - version: '1.8.2', + version: '1.8.3', license: 'LGPL-2.1-or-later', meson_version: '>= 0.63.0', default_options: [ 'warning_level=1', 'buildtype=debugoptimized', 'c_std=gnu11' ], @@ -29,7 +29,7 @@ # to 0. When bumping the second version, set the third one to zero. # # A lot easier than libtool, right? -libversion = '0.8.2' +libversion = '0.8.3' # The so major version of the library soversion = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/po/de.po new/libadwaita-1.8.3/po/de.po --- old/libadwaita-1.8.2/po/de.po 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/po/de.po 2026-01-03 18:51:26.000000000 +0100 @@ -11,16 +11,16 @@ msgstr "" "Project-Id-Version: libadwaita main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libadwaita/issues\n" -"POT-Creation-Date: 2025-03-15 14:08+0000\n" -"PO-Revision-Date: 2025-03-18 18:43+0100\n" -"Last-Translator: Jürgen Benvenuti <[email protected]>\n" +"POT-Creation-Date: 2025-12-10 20:26+0000\n" +"PO-Revision-Date: 2025-12-13 23:46+0100\n" +"Last-Translator: Christian Kirbach <[email protected]>\n" "Language-Team: German <[email protected]>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.4.4\n" +"X-Generator: Poedit 3.8\n" #: src/adw-about-dialog.c:213 src/adw-about-window.c:208 msgid "GNU General Public License, version 2 or later" @@ -90,30 +90,30 @@ msgid "BSD Zero-Clause License" msgstr "BSD Zero-Klausel-Lizenz" -#: src/adw-about-dialog.c:579 src/adw-about-window.c:571 +#: src/adw-about-dialog.c:580 src/adw-about-window.c:572 msgid "Code by" msgstr "Code von" -#: src/adw-about-dialog.c:580 src/adw-about-window.c:572 +#: src/adw-about-dialog.c:581 src/adw-about-window.c:573 msgid "Design by" msgstr "Design von" -#: src/adw-about-dialog.c:581 src/adw-about-window.c:573 +#: src/adw-about-dialog.c:582 src/adw-about-window.c:574 msgid "Artwork by" msgstr "Künstlerische Darstellung von" -#: src/adw-about-dialog.c:582 src/adw-about-window.c:574 +#: src/adw-about-dialog.c:583 src/adw-about-window.c:575 msgid "Documentation by" msgstr "Dokumentation von" -#: src/adw-about-dialog.c:583 src/adw-about-window.c:575 +#: src/adw-about-dialog.c:584 src/adw-about-window.c:576 msgid "Translated by" msgstr "Übersetzung von" #. Translators: this is the license preamble; the string at the end #. * contains the name of the license as link text. #. -#: src/adw-about-dialog.c:612 src/adw-about-window.c:604 +#: src/adw-about-dialog.c:613 src/adw-about-window.c:605 #, c-format msgid "" "This application comes with absolutely no warranty. See the <a " @@ -122,47 +122,47 @@ "Dieses Programm kommt OHNE JEDWEDE GARANTIE.\n" "Besuchen Sie <a href=\"%s\">%s</a> für weitere Informationen." -#: src/adw-about-dialog.c:690 src/adw-about-window.c:682 +#: src/adw-about-dialog.c:691 src/adw-about-window.c:683 msgid "This Application" msgstr "Diese Anwendung" -#: src/adw-about-dialog.c:992 src/adw-about-window.c:984 +#: src/adw-about-dialog.c:993 src/adw-about-window.c:985 #, c-format msgid "Version %s" msgstr "Version %s" -#: src/adw-about-dialog.c:1018 src/adw-about-window.c:1010 +#: src/adw-about-dialog.c:1019 src/adw-about-window.c:1011 msgid "Unable to parse release notes:" msgstr "Veröffentlichungshinweise konnten nicht verarbeitet werden:" -#: src/adw-about-dialog.c:1024 src/adw-about-window.c:1016 +#: src/adw-about-dialog.c:1025 src/adw-about-window.c:1017 #, c-format msgid "Line: %d, character: %d" msgstr "Zeile %d, Zeichen: %d" -#: src/adw-about-dialog.c:1310 src/adw-about-window.c:1302 +#: src/adw-about-dialog.c:1311 src/adw-about-window.c:1303 msgid "Copied to clipboard" msgstr "In die Zwischenablage kopiert" -#: src/adw-about-dialog.c:1337 src/adw-about-window.c:1330 +#: src/adw-about-dialog.c:1338 src/adw-about-window.c:1331 msgid "Unable to save debugging information" msgstr "Informationen zur Fehlerbehebung konnten nicht gespeichert werden" -#: src/adw-about-dialog.c:1342 src/adw-about-window.c:1335 +#: src/adw-about-dialog.c:1343 src/adw-about-window.c:1336 #: src/adw-sheet-controls.c:127 msgid "Close" msgstr "Schließen" -#: src/adw-about-dialog.c:1359 src/adw-about-window.c:1351 +#: src/adw-about-dialog.c:1360 src/adw-about-window.c:1352 msgid "Save debugging information" msgstr "Informationen zur Fehlerbehebung speichern" -#: src/adw-about-dialog.c:2301 +#: src/adw-about-dialog.c:2302 #, c-format msgid "Other Apps by %s" msgstr "Andere Anwendungen von %s" -#: src/adw-about-dialog.c:2307 +#: src/adw-about-dialog.c:2308 msgid "Other Apps" msgstr "Andere Anwendungen" @@ -171,15 +171,15 @@ msgstr "Info" #: src/adw-about-dialog.ui:88 src/adw-about-window.ui:91 -msgid "_What’s New" -msgstr "_Neuigkeiten" +msgid "What’s _New" +msgstr "Neuigkeiten" #: src/adw-about-dialog.ui:104 src/adw-about-window.ui:107 msgid "_Details" msgstr "_Details" -#: src/adw-about-dialog.ui:120 src/adw-about-dialog.ui:345 -#: src/adw-about-window.ui:123 src/adw-about-window.ui:343 +#: src/adw-about-dialog.ui:120 src/adw-about-dialog.ui:348 +#: src/adw-about-window.ui:123 src/adw-about-window.ui:346 msgid "_Website" msgstr "_Webseite" @@ -211,15 +211,15 @@ msgid "What’s New" msgstr "Neuigkeiten" -#: src/adw-about-dialog.ui:307 src/adw-about-window.ui:305 +#: src/adw-about-dialog.ui:310 src/adw-about-window.ui:308 msgid "Details" msgstr "Details" -#: src/adw-about-dialog.ui:373 src/adw-about-window.ui:371 +#: src/adw-about-dialog.ui:376 src/adw-about-window.ui:374 msgid "Troubleshooting" msgstr "Fehlerbehandlung" -#: src/adw-about-dialog.ui:396 src/adw-about-window.ui:394 +#: src/adw-about-dialog.ui:399 src/adw-about-window.ui:397 msgid "" "To assist in troubleshooting, you can view your debugging information. " "Providing this information to the application developers can help diagnose " @@ -229,31 +229,31 @@ "Fehlerbehebung ansehen. Wenn Sie ein Problem melden, können diese " "Informationen den Anwendungsentwicklern bei der Diagnose helfen." -#: src/adw-about-dialog.ui:407 src/adw-about-window.ui:405 +#: src/adw-about-dialog.ui:410 src/adw-about-window.ui:408 msgid "_Debugging Information" msgstr "_Informationen zur Fehlerbehebung" -#: src/adw-about-dialog.ui:434 src/adw-about-window.ui:432 +#: src/adw-about-dialog.ui:437 src/adw-about-window.ui:435 msgid "Debugging Information" msgstr "Informationen zur Fehlerbehebung" -#: src/adw-about-dialog.ui:479 src/adw-about-window.ui:477 +#: src/adw-about-dialog.ui:485 src/adw-about-window.ui:483 msgid "_Copy Text" msgstr "Text _kopieren" -#: src/adw-about-dialog.ui:487 src/adw-about-window.ui:485 +#: src/adw-about-dialog.ui:493 src/adw-about-window.ui:491 msgid "_Save As…" msgstr "_Speichern unter …" -#: src/adw-about-dialog.ui:500 src/adw-about-window.ui:498 +#: src/adw-about-dialog.ui:506 src/adw-about-window.ui:504 msgid "Credits" msgstr "Mitwirkende" -#: src/adw-about-dialog.ui:531 src/adw-about-window.ui:529 +#: src/adw-about-dialog.ui:537 src/adw-about-window.ui:535 msgid "Legal" msgstr "Rechtshinweis" -#: src/adw-about-dialog.ui:563 src/adw-about-window.ui:561 +#: src/adw-about-dialog.ui:569 src/adw-about-window.ui:567 msgid "Acknowledgements" msgstr "Danksagung" @@ -261,7 +261,7 @@ msgid "Screenshot Copied to Clipboard" msgstr "Bildschirmfoto in die Zwischenablage kopiert" -#: src/adw-adaptive-preview.ui:19 src/adw-inspector-page.c:65 +#: src/adw-adaptive-preview.ui:19 src/adw-inspector-page.c:67 #: src/adw-inspector-page.ui:88 msgid "Adaptive Preview" msgstr "Adaptive Vorschau" @@ -341,49 +341,64 @@ msgstr "Bildschirmfoto aufnehmen" #: src/adw-adaptive-preview-presets-private.h:24 +msgctxt "Shell preset" msgid "Desktop Shell" msgstr "Desktop-Shell" #: src/adw-adaptive-preview-presets-private.h:25 +msgctxt "Shell preset" msgid "Mobile Shell" msgstr "Mobiltelefon-Shell" #: src/adw-adaptive-preview-presets-private.h:26 +msgctxt "Shell preset" msgid "Phosh" msgstr "Phosh" #: src/adw-adaptive-preview-presets-private.h:27 +msgctxt "Shell preset" msgid "Fullscreen" msgstr "Vollbild" #: src/adw-adaptive-preview-presets-private.h:28 -#: src/adw-adaptive-preview-presets-private.h:126 +msgctxt "Shell preset" msgid "Custom" msgstr "Benutzerdefiniert" #: src/adw-adaptive-preview-presets-private.h:90 +msgctxt "Device preset" msgid "Generic Phone" -msgstr "Generisches Mobiltelefon" +msgstr "Allgemeines Telefon" #: src/adw-adaptive-preview-presets-private.h:99 +msgctxt "Device preset" msgid "Generic Tablet" -msgstr "Generisches Tablet" +msgstr "Allgemeines Tablet" #: src/adw-adaptive-preview-presets-private.h:108 +#| msgid "OnePlus 6" +msgctxt "Device preset" msgid "OnePlus 6" msgstr "OnePlus 6" #: src/adw-adaptive-preview-presets-private.h:117 +#| msgid "OnePlus 6T" +msgctxt "Device preset" msgid "OnePlus 6T" msgstr "OnePlus 6T" +#: src/adw-adaptive-preview-presets-private.h:126 +msgctxt "Device preset" +msgid "Custom" +msgstr "Benutzerdefiniert" + #: src/adw-avatar.c:159 #, c-format msgid "Avatar of %s" msgstr "Benutzerbild von %s" -#: src/adw-back-button.c:311 src/adw-back-button.c:409 -#: src/adw-back-button.c:519 +#: src/adw-back-button.c:313 src/adw-back-button.c:411 +#: src/adw-back-button.c:521 msgid "Back" msgstr "Zurück" @@ -397,56 +412,56 @@ msgid "Apply" msgstr "Anwenden" -#: src/adw-inspector-page.c:129 +#: src/adw-inspector-page.c:131 msgid "No Preference" msgstr "Keine Präferenz" -#: src/adw-inspector-page.c:131 +#: src/adw-inspector-page.c:133 msgid "Prefer Dark" msgstr "Dunkel bevorzugen" -#: src/adw-inspector-page.c:133 +#: src/adw-inspector-page.c:135 msgid "Prefer Light" msgstr "Hell bevorzugen" -#: src/adw-inspector-page.c:146 +#: src/adw-inspector-page.c:148 msgid "Blue" msgstr "Blau" -#: src/adw-inspector-page.c:148 +#: src/adw-inspector-page.c:150 msgid "Teal" msgstr "Blaugrün" -#: src/adw-inspector-page.c:150 +#: src/adw-inspector-page.c:152 msgid "Green" msgstr "Grün" -#: src/adw-inspector-page.c:152 +#: src/adw-inspector-page.c:154 msgid "Yellow" msgstr "Gelb" -#: src/adw-inspector-page.c:154 +#: src/adw-inspector-page.c:156 msgid "Orange" msgstr "Orange" -#: src/adw-inspector-page.c:156 +#: src/adw-inspector-page.c:158 msgid "Red" msgstr "Rot" -#: src/adw-inspector-page.c:158 +#: src/adw-inspector-page.c:160 msgid "Pink" msgstr "Rosa" -#: src/adw-inspector-page.c:160 +#: src/adw-inspector-page.c:162 msgid "Purple" msgstr "Violett" -#: src/adw-inspector-page.c:162 +#: src/adw-inspector-page.c:164 msgid "Slate" msgstr "Blaugrau" #. Translators: The name of the library, not the stylesheet -#: src/adw-inspector-page.c:301 +#: src/adw-inspector-page.c:303 msgid "Adwaita" msgstr "Adwaita" @@ -527,11 +542,13 @@ msgid "Search preferences" msgstr "Einstellungen durchsuchen" -#: src/adw-preferences-dialog.ui:152 src/adw-preferences-window.ui:163 +#: src/adw-preferences-dialog.ui:153 src/adw-preferences-window.ui:163 +#: src/adw-shortcuts-dialog.ui:75 msgid "No Results Found" msgstr "Keine Ergebnisse gefunden" -#: src/adw-preferences-dialog.ui:153 src/adw-tab-overview.ui:110 +#: src/adw-preferences-dialog.ui:154 src/adw-shortcuts-dialog.ui:76 +#: src/adw-tab-overview.ui:110 msgid "Try a different search" msgstr "Versuchen Sie eine andere Suchanfrage" @@ -543,6 +560,38 @@ msgid "Close the window" msgstr "Fenster schließen" +#. Translators: This string is used to mark left/right variants of modifier +#. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep +#. * this string very short, ideally just a single character, since it will +#. * be rendered as part of the key. +#. +#: src/adw-shortcut-label.c:133 +msgctxt "keyboard side marker" +msgid "L" +msgstr "L" + +#. Translators: This string is used to mark left/right variants of modifier +#. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep +#. * this string very short, ideally just a single character, since it will +#. * be rendered as part of the key. +#. +#: src/adw-shortcut-label.c:146 +msgctxt "keyboard side marker" +msgid "R" +msgstr "R" + +#: src/adw-shortcuts-dialog.ui:5 +msgid "Keyboard Shortcuts" +msgstr "Tastenkürzel" + +#: src/adw-shortcuts-dialog.ui:20 +msgid "Search shortcuts" +msgstr "Tastenkürzel durchsuchen" + +#: src/adw-shortcut-row.c:257 +msgid "No Shortcut" +msgstr "Kein Tastenkürzel" + #: src/adw-split-button.c:530 src/adw-split-button.c:1044 msgid "More Options" msgstr "Weitere Optionen" @@ -583,22 +632,22 @@ msgid "Close Tab" msgstr "Reiter schließen" -#: src/adw-toast-overlay.c:278 +#: src/adw-toast-overlay.c:285 #, c-format msgid "A toast appeared: %s, has a button: %s" msgstr "Eine Toast-Benachrichtigung ist erschienen: %s, hat einen Knopf: %s" -#: src/adw-toast-overlay.c:281 +#: src/adw-toast-overlay.c:288 #, c-format msgid "A toast appeared: %s" msgstr "Eine Toast-Benachrichtigung ist erschienen: %s" -#: src/adw-toast-overlay.c:283 +#: src/adw-toast-overlay.c:290 #, c-format msgid "A toast appeared, has a button: %s" msgstr "Eine Toast-Benachrichtigung ist erschienen, hat einen Knopf: %s" -#: src/adw-toast-overlay.c:286 +#: src/adw-toast-overlay.c:293 msgid "A toast appeared" msgstr "Eine Toast-Benachrichtigung ist erschienen" @@ -606,6 +655,9 @@ msgid "Dismiss" msgstr "Fertig" +#~ msgid "_What’s New" +#~ msgstr "_Neuigkeiten" + #~ msgid "Search…" #~ msgstr "Suchen …" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-about-dialog.c new/libadwaita-1.8.3/src/adw-about-dialog.c --- old/libadwaita-1.8.2/src/adw-about-dialog.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-about-dialog.c 2026-01-03 18:51:26.000000000 +0100 @@ -3484,7 +3484,10 @@ row = adw_action_row_new (); - icon = gtk_image_new_from_icon_name (appid); + icon = g_object_new (GTK_TYPE_IMAGE, + "accessible-role", GTK_ACCESSIBLE_ROLE_PRESENTATION, + "icon-name", appid, + NULL); gtk_image_set_pixel_size (GTK_IMAGE (icon), 32); gtk_widget_add_css_class (icon, "lowres-icon"); adw_action_row_add_prefix (ADW_ACTION_ROW (row), icon); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-adaptive-preview.c new/libadwaita-1.8.3/src/adw-adaptive-preview.c --- old/libadwaita-1.8.2/src/adw-adaptive-preview.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-adaptive-preview.c 2026-01-03 18:51:26.000000000 +0100 @@ -418,6 +418,7 @@ gsk_transform_unref (transform); gsk_render_node_unref (node); + g_object_unref (texture); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-alert-dialog.c new/libadwaita-1.8.3/src/adw-alert-dialog.c --- old/libadwaita-1.8.2/src/adw-alert-dialog.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-alert-dialog.c 2026-01-03 18:51:26.000000000 +0100 @@ -217,6 +217,8 @@ gboolean block_close_response; gboolean is_short; + + GBinding *child_visible_binding; } AdwAlertDialogPrivate; static void adw_alert_dialog_buildable_init (GtkBuildableIface *iface); @@ -1858,9 +1860,19 @@ if (child) g_return_if_fail (gtk_widget_get_parent (child) == NULL); + g_clear_pointer (&priv->child_visible_binding, g_binding_unbind); + priv->child = child; adw_bin_set_child (ADW_BIN (priv->child_bin), child); - gtk_widget_set_visible (priv->child_bin, child != NULL); + + if (child) { + priv->child_visible_binding = + g_object_bind_property (child, "visible", + priv->child_bin, "visible", + G_BINDING_SYNC_CREATE); + } else { + gtk_widget_set_visible (priv->child_bin, FALSE); + } g_object_notify_by_pspec (G_OBJECT (self), props[PROP_EXTRA_CHILD]); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-inline-view-switcher.c new/libadwaita-1.8.3/src/adw-inline-view-switcher.c --- old/libadwaita-1.8.2/src/adw-inline-view-switcher.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-inline-view-switcher.c 2026-01-03 18:51:26.000000000 +0100 @@ -134,7 +134,7 @@ guint badge_number = g_value_get_uint (input); if (badge_number > 0) - g_value_take_string (output, g_strdup_printf ("%u", badge_number)); + g_value_take_string (output, adw_get_badge_text (badge_number)); else g_value_set_string (output, NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-message-dialog.c new/libadwaita-1.8.3/src/adw-message-dialog.c --- old/libadwaita-1.8.2/src/adw-message-dialog.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-message-dialog.c 2026-01-03 18:51:26.000000000 +0100 @@ -200,6 +200,8 @@ int parent_height; guint parent_state_idle_id; + + GBinding *child_visible_binding; } AdwMessageDialogPrivate; static void adw_message_dialog_buildable_init (GtkBuildableIface *iface); @@ -1972,9 +1974,19 @@ if (child) g_return_if_fail (gtk_widget_get_parent (child) == NULL); + g_clear_pointer (&priv->child_visible_binding, g_binding_unbind); + priv->child = child; adw_bin_set_child (ADW_BIN (priv->child_bin), child); - gtk_widget_set_visible (priv->child_bin, child != NULL); + + if (child) { + priv->child_visible_binding = + g_object_bind_property (child, "visible", + priv->child_bin, "visible", + G_BINDING_SYNC_CREATE); + } else { + gtk_widget_set_visible (priv->child_bin, FALSE); + } g_object_notify_by_pspec (G_OBJECT (self), props[PROP_EXTRA_CHILD]); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-navigation-view.c new/libadwaita-1.8.3/src/adw-navigation-view.c --- old/libadwaita-1.8.2/src/adw-navigation-view.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-navigation-view.c 2026-01-03 18:51:26.000000000 +0100 @@ -342,6 +342,9 @@ { AdwNavigationViewModel *self = ADW_NAVIGATION_VIEW_MODEL (model); + if (G_UNLIKELY (!ADW_IS_NAVIGATION_VIEW (self->view))) + return 0; + return g_list_model_get_n_items (G_LIST_MODEL (self->view->navigation_stack)); } @@ -351,6 +354,9 @@ { AdwNavigationViewModel *self = ADW_NAVIGATION_VIEW_MODEL (model); + if (G_UNLIKELY (!ADW_IS_NAVIGATION_VIEW (self->view))) + return NULL; + return g_list_model_get_item (G_LIST_MODEL (self->view->navigation_stack), position); } @@ -367,13 +373,26 @@ G_IMPLEMENT_INTERFACE (G_TYPE_LIST_MODEL, adw_navigation_view_model_list_model_init)) static void +adw_navigation_view_model_dispose (GObject *object) +{ + AdwNavigationViewModel *self = ADW_NAVIGATION_VIEW_MODEL (object); + + g_clear_weak_pointer (&self->view); + + G_OBJECT_CLASS (adw_navigation_view_model_parent_class)->dispose (object); +} + +static void adw_navigation_view_model_init (AdwNavigationViewModel *self) { } static void -adw_navigation_view_model_class_init (AdwNavigationViewModelClass *class) +adw_navigation_view_model_class_init (AdwNavigationViewModelClass *klass) { + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = adw_navigation_view_model_dispose; } static GListModel * @@ -382,7 +401,7 @@ AdwNavigationViewModel *model; model = g_object_new (ADW_TYPE_NAVIGATION_VIEW_MODEL, NULL); - model->view = view; + g_set_weak_pointer (&model->view, view); return G_LIST_MODEL (model); } @@ -893,6 +912,9 @@ old_page = adw_navigation_view_get_visible_page (self); + if (page_to == old_page) + return; + length = g_list_model_get_n_items (G_LIST_MODEL (self->navigation_stack)); g_assert (g_list_store_find (self->navigation_stack, page_to, &pos)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-preferences-group.ui new/libadwaita-1.8.3/src/adw-preferences-group.ui --- old/libadwaita-1.8.2/src/adw-preferences-group.ui 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-preferences-group.ui 2026-01-03 18:51:26.000000000 +0100 @@ -2,6 +2,10 @@ <interface domain="libadwaita"> <requires lib="gtk" version="4.0"/> <template class="AdwPreferencesGroup" parent="GtkWidget"> + <accessibility> + <relation name="labelled-by">title</relation> + <relation name="described-by">description</relation> + </accessibility> <child> <object class="GtkBox" id="box"> <property name="orientation">vertical</property> @@ -55,10 +59,6 @@ <object class="GtkListBox" id="listbox"> <property name="visible">False</property> <property name="selection_mode">none</property> - <accessibility> - <relation name="labelled-by">title</relation> - <relation name="described-by">description</relation> - </accessibility> <signal name="keynav-failed" handler="adw_tab_on_vertical_keynav_failed" swapped="yes"/> <style> <class name="boxed-list"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-preferences-page.c new/libadwaita-1.8.3/src/adw-preferences-page.c --- old/libadwaita-1.8.2/src/adw-preferences-page.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-preferences-page.c 2026-01-03 18:51:26.000000000 +0100 @@ -304,15 +304,10 @@ AdwPreferencesPage *self = ADW_PREFERENCES_PAGE (buildable); AdwPreferencesPagePrivate *priv = adw_preferences_page_get_instance_private (self); - if (priv->box && ADW_IS_PREFERENCES_GROUP (child)) { + if (priv->box && ADW_IS_PREFERENCES_GROUP (child)) adw_preferences_page_add (self, ADW_PREFERENCES_GROUP (child)); - } else if (priv->scrolled_window && GTK_IS_WIDGET (child)) { - g_critical ("Trying to add %s as a child to an AdwPreferencePage, " - "but only AdwPreferencesPage is allowed", - G_OBJECT_TYPE_NAME (child)); - } else { + else parent_buildable_iface->add_child (buildable, builder, child, type); - } } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-shortcuts-dialog.c new/libadwaita-1.8.3/src/adw-shortcuts-dialog.c --- old/libadwaita-1.8.2/src/adw-shortcuts-dialog.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-shortcuts-dialog.c 2026-01-03 18:51:26.000000000 +0100 @@ -351,6 +351,21 @@ adw_dialog_close (ADW_DIALOG (self)); } +static void +search_activated_cb (AdwShortcutsDialog *self) +{ + GtkListBoxRow *row; + + if (adw_view_stack_get_visible_child (self->stack) != GTK_WIDGET (self->search)) + return; + + row = gtk_list_box_get_row_at_index (self->search_list, 0); + if (!row) + return; + + gtk_widget_grab_focus (GTK_WIDGET (row)); +} + static GtkWidget * create_row (AdwShortcutsItem *item, AdwShortcutsDialog *self) @@ -572,6 +587,7 @@ gtk_widget_class_bind_template_callback (widget_class, search_started_cb); gtk_widget_class_bind_template_callback (widget_class, search_changed_cb); gtk_widget_class_bind_template_callback (widget_class, stop_search_cb); + gtk_widget_class_bind_template_callback (widget_class, search_activated_cb); gtk_widget_class_bind_template_callback (widget_class, search_row_activated_cb); gtk_widget_class_bind_template_callback (widget_class, adw_tab_on_vertical_keynav_failed); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-shortcuts-dialog.ui new/libadwaita-1.8.3/src/adw-shortcuts-dialog.ui --- old/libadwaita-1.8.2/src/adw-shortcuts-dialog.ui 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-shortcuts-dialog.ui 2026-01-03 18:51:26.000000000 +0100 @@ -18,9 +18,13 @@ <property name="child"> <object class="GtkSearchEntry" id="search_entry"> <property name="placeholder-text" translatable="yes">Search shortcuts</property> + <accessibility> + <property name="label" translatable="yes">Search shortcuts</property> + </accessibility> <signal name="search-started" handler="search_started_cb" swapped="yes"/> <signal name="search-changed" handler="search_changed_cb" swapped="yes"/> <signal name="stop-search" handler="stop_search_cb" swapped="yes"/> + <signal name="activate" handler="search_activated_cb" swapped="yes"/> </object> </property> </object> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-status-page.c new/libadwaita-1.8.3/src/adw-status-page.c --- old/libadwaita-1.8.2/src/adw-status-page.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-status-page.c 2026-01-03 18:51:26.000000000 +0100 @@ -94,6 +94,17 @@ return string && string[0]; } +static gboolean +adw_status_page_grab_focus (GtkWidget *widget) +{ + AdwStatusPage *self = ADW_STATUS_PAGE (widget); + + if (self->user_widget) + return gtk_widget_grab_focus (self->user_widget); + + return adw_widget_grab_focus_child (self->scrolled_window); +} + static void adw_status_page_get_property (GObject *object, guint prop_id, @@ -199,6 +210,8 @@ object_class->finalize = adw_status_page_finalize; widget_class->compute_expand = adw_widget_compute_expand; + widget_class->focus = adw_widget_focus_child; + widget_class->grab_focus = adw_status_page_grab_focus; /** * AdwStatusPage:icon-name: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-tab-overview.c new/libadwaita-1.8.3/src/adw-tab-overview.c --- old/libadwaita-1.8.2/src/adw-tab-overview.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-tab-overview.c 2026-01-03 18:51:26.000000000 +0100 @@ -858,6 +858,18 @@ set_search_active (self, FALSE); } +static void +search_activated_cb (AdwTabOverview *self) +{ + if (!self->search_active) + return; + + if (adw_tab_grid_focus_first_row (self->pinned_grid, 0)) + return; + + adw_tab_grid_focus_first_row (self->grid, 0); +} + static AdwTabPage * create_tab (AdwTabOverview *self) { @@ -1844,6 +1856,7 @@ gtk_widget_class_bind_template_callback (widget_class, empty_changed_cb); gtk_widget_class_bind_template_callback (widget_class, search_changed_cb); gtk_widget_class_bind_template_callback (widget_class, stop_search_cb); + gtk_widget_class_bind_template_callback (widget_class, search_activated_cb); gtk_widget_class_bind_template_callback (widget_class, new_tab_clicked_cb); gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-tab-overview.ui new/libadwaita-1.8.3/src/adw-tab-overview.ui --- old/libadwaita-1.8.2/src/adw-tab-overview.ui 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-tab-overview.ui 2026-01-03 18:51:26.000000000 +0100 @@ -50,6 +50,7 @@ <property name="placeholder-text" translatable="yes">Search tabs</property> <signal name="search-changed" handler="search_changed_cb" swapped="yes"/> <signal name="stop-search" handler="stop_search_cb" swapped="yes"/> + <signal name="activate" handler="search_activated_cb" swapped="yes"/> </object> </property> </object> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-view-stack.c new/libadwaita-1.8.3/src/adw-view-stack.c --- old/libadwaita-1.8.2/src/adw-view-stack.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-view-stack.c 2026-01-03 18:51:26.000000000 +0100 @@ -1555,6 +1555,27 @@ iface->get_first_accessible_child = adw_view_stack_accessible_get_first_accessible_child; } +static void +update_page (AdwViewStackPage *self) +{ + if (self->title && *self->title) { + if (self->use_underline) { + char *stripped_label = adw_strip_mnemonic (self->title); + gtk_accessible_update_property (GTK_ACCESSIBLE (self), + GTK_ACCESSIBLE_PROPERTY_LABEL, stripped_label, + -1); + g_free (stripped_label); + } else { + gtk_accessible_update_property (GTK_ACCESSIBLE (self), + GTK_ACCESSIBLE_PROPERTY_LABEL, self->title, + -1); + } + } else { + gtk_accessible_reset_property (GTK_ACCESSIBLE (self), + GTK_ACCESSIBLE_PROPERTY_LABEL); + } +} + /** * adw_view_stack_page_get_child: * @self: a view stack page @@ -1664,11 +1685,9 @@ if (!g_set_str (&self->title, title)) return; - g_object_notify_by_pspec (G_OBJECT (self), page_props[PAGE_PROP_TITLE]); + update_page (self); - gtk_accessible_update_property (GTK_ACCESSIBLE (self), - GTK_ACCESSIBLE_PROPERTY_LABEL, self->title, - -1); + g_object_notify_by_pspec (G_OBJECT (self), page_props[PAGE_PROP_TITLE]); } /** @@ -1703,6 +1722,8 @@ self->use_underline = use_underline; + update_page (self); + g_object_notify_by_pspec (G_OBJECT (self), page_props[PAGE_PROP_USE_UNDERLINE]); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-view-switcher-button.c new/libadwaita-1.8.3/src/adw-view-switcher-button.c --- old/libadwaita-1.8.2/src/adw-view-switcher-button.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-view-switcher-button.c 2026-01-03 18:51:26.000000000 +0100 @@ -9,6 +9,7 @@ #include "adw-indicator-bin-private.h" #include "adw-view-switcher-button-private.h" +#include "adw-widget-utils-private.h" #define TIMEOUT_EXPAND 500 @@ -125,13 +126,7 @@ get_badge_text (AdwViewSwitcherButton *self, guint badge_number) { - if (badge_number > 999) - return g_strdup ("999+"); - - if (!badge_number) - return g_strdup (""); - - return g_strdup_printf ("%u", badge_number); + return adw_get_badge_text (badge_number); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-widget-utils-private.h new/libadwaita-1.8.3/src/adw-widget-utils-private.h --- old/libadwaita-1.8.2/src/adw-widget-utils-private.h 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-widget-utils-private.h 2026-01-03 18:51:26.000000000 +0100 @@ -80,4 +80,6 @@ gboolean adw_tab_on_vertical_keynav_failed (GtkWidget *widget, GtkDirectionType direction); +char *adw_get_badge_text (guint badge_number); + G_END_DECLS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libadwaita-1.8.2/src/adw-widget-utils.c new/libadwaita-1.8.3/src/adw-widget-utils.c --- old/libadwaita-1.8.2/src/adw-widget-utils.c 2025-11-20 23:30:19.000000000 +0100 +++ new/libadwaita-1.8.3/src/adw-widget-utils.c 2026-01-03 18:51:26.000000000 +0100 @@ -810,3 +810,15 @@ return gtk_widget_child_focus (toplevel, direction == GTK_DIR_UP ? GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD); } + +char * +adw_get_badge_text (guint badge_number) +{ + if (badge_number > 999) + return g_strdup ("999+"); + + if (!badge_number) + return g_strdup (""); + + return g_strdup_printf ("%u", badge_number); +} ++++++ libadwaita.obsinfo ++++++ --- /var/tmp/diff_new_pack.DcyQCL/_old 2026-01-06 17:43:28.314912279 +0100 +++ /var/tmp/diff_new_pack.DcyQCL/_new 2026-01-06 17:43:28.326912762 +0100 @@ -1,5 +1,5 @@ name: libadwaita -version: 1.8.2 -mtime: 1763677819 -commit: e03881673b7100579b3f1d20e8a48eca9a6b04e5 +version: 1.8.3 +mtime: 1767462686 +commit: 61059f976eefc5713e0fa50921a49dd872664e23
