Backport patches up to 1.6.10

We can't use the upstream tarballs after 1.6.2 because they stopped pre-
generating CSS and we do not allow the sassc in the buildroot. Therefore,
we will continue to miss out on CSS changes which require re-generation.

This continues the effort to backport patches that do not effect CSS by
applying them ontop of the CSS that is already there pre-generated in
1.6.2.

Resolves: RHEL-122610
This commit is contained in:
Christian Hergert 2025-11-12 11:27:18 -08:00
parent 999de975a8
commit 5e983bdc10
No known key found for this signature in database
17 changed files with 896 additions and 1 deletions

View File

@ -0,0 +1,73 @@
From 42e338f7bbae14a108f0444366711ce31afa88c2 Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Sat, 2 Aug 2025 01:31:27 +0400
Subject: [PATCH 01/18] alert-dialog: emit ::response when cancelled
This ensures we got through the same teardown sequence as if the user
had actually interacted with the dialogue, and avoids the dialogue
living in the host longer than expected.
(cherry picked from commit e387a1a920e1f3697707dc50d36297125d835b01)
Co-authored-by: Zander Brown <zbrown@gnome.org>
(cherry picked from commit d72bfccbcb6189830a3d4b17a62491e8dad6562c)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-alert-dialog.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/adw-alert-dialog.c b/src/adw-alert-dialog.c
index 198cd00f..24347cb8 100644
--- a/src/adw-alert-dialog.c
+++ b/src/adw-alert-dialog.c
@@ -264,22 +264,29 @@ find_response (AdwAlertDialog *self,
return g_hash_table_lookup (priv->id_to_response, id);
}
-static void
-button_clicked_cb (ResponseInfo *info)
+
+static inline void
+emit_response (AdwAlertDialog *self, GQuark response)
{
- AdwAlertDialog *self = info->dialog;
AdwAlertDialogPrivate *priv = adw_alert_dialog_get_instance_private (self);
g_object_ref (self);
priv->block_close_response = TRUE;
adw_dialog_close (ADW_DIALOG (self));
- g_signal_emit (self, signals[SIGNAL_RESPONSE], info->id, g_quark_to_string (info->id));
+ g_signal_emit (self, signals[SIGNAL_RESPONSE], response, g_quark_to_string (response));
priv->block_close_response = FALSE;
g_object_unref (self);
}
+
+static void
+button_clicked_cb (ResponseInfo *info)
+{
+ emit_response (info->dialog, info->id);
+}
+
static GtkWidget *
create_response_button (AdwAlertDialog *self,
ResponseInfo *info)
@@ -2447,8 +2454,9 @@ choose_cancelled_cb (GCancellable *cancellable,
GTask *task)
{
AdwAlertDialog *self = g_task_get_source_object (task);
+ AdwAlertDialogPrivate *priv = adw_alert_dialog_get_instance_private (self);
- choose_response_cb (self, adw_alert_dialog_get_close_response (self), task);
+ emit_response (self, priv->close_response);
}
/**
--
2.51.1

View File

@ -0,0 +1,73 @@
From 47d65e0e7e9ac1b869ad9e2125d67f7db88a65f1 Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Sat, 2 Aug 2025 01:31:35 +0400
Subject: [PATCH 02/18] message-dialog: emit ::response when cancelled too
See e387a1a920e1f3697707dc50d36297125d835b01
(cherry picked from commit 20946b3d4f483d8b22aa2d9c29f77b1fda0f1387)
0b042f2f message-dialog: Backport fix from alert-dialog
Co-authored-by: Zander Brown <zbrown@gnome.org>
(cherry picked from commit 6505e4c9e966ff887895d5c7df58f1c3ca0287c8)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-message-dialog.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/adw-message-dialog.c b/src/adw-message-dialog.c
index da26722b..ed028d53 100644
--- a/src/adw-message-dialog.c
+++ b/src/adw-message-dialog.c
@@ -406,22 +406,29 @@ parent_changed_cb (AdwMessageDialog *self)
set_parent (self, transient_for);
}
-static void
-button_clicked_cb (ResponseInfo *info)
+
+static inline void
+emit_response (AdwMessageDialog *self, GQuark response)
{
- AdwMessageDialog *self = info->dialog;
AdwMessageDialogPrivate *priv = adw_message_dialog_get_instance_private (self);
g_object_ref (self);
priv->block_close_response = TRUE;
gtk_window_close (GTK_WINDOW (self));
- g_signal_emit (self, signals[SIGNAL_RESPONSE], info->id, g_quark_to_string (info->id));
+ g_signal_emit (self, signals[SIGNAL_RESPONSE], response, g_quark_to_string (response));
priv->block_close_response = FALSE;
g_object_unref (self);
}
+
+static void
+button_clicked_cb (ResponseInfo *info)
+{
+ emit_response (info->dialog, info->id);
+}
+
static GtkWidget *
create_response_button (AdwMessageDialog *self,
ResponseInfo *info)
@@ -2542,8 +2549,9 @@ choose_cancelled_cb (GCancellable *cancellable,
GTask *task)
{
AdwMessageDialog *self = g_task_get_source_object (task);
+ AdwMessageDialogPrivate *priv = adw_message_dialog_get_instance_private (self);
- choose_response_cb (self, adw_message_dialog_get_close_response (self), task);
+ emit_response (self, priv->close_response);
}
/**
--
2.51.1

View File

@ -0,0 +1,41 @@
From b5e309e6097a10676ef22d2bec4d82eb5f7a0f84 Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Sat, 2 Aug 2025 01:32:30 +0400
Subject: [PATCH 04/18] dialog: Don't always try to check 'can-focus' on bin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The bin doesn't exist when the dialog is presented as a window.
This fixes a type sanity check in gtk_widget_get_can_focus() when called
from adw_dialog_set_focus().
(cherry picked from commit 401a870dd062572d8f72302a005f91a8ca7b31ed)
Co-authored-by: Jonas Ådahl <jadahl@gmail.com>
(cherry picked from commit 4118a9195151979dad0d5227d141d87e13862f1a)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-dialog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/adw-dialog.c b/src/adw-dialog.c
index fd539bb0..be62ae17 100644
--- a/src/adw-dialog.c
+++ b/src/adw-dialog.c
@@ -1778,7 +1778,7 @@ adw_dialog_set_focus (AdwDialog *self,
if (priv->focus_widget == focus)
return;
- if (!gtk_widget_get_can_focus (priv->bin)) {
+ if (!priv->bin || !gtk_widget_get_can_focus (priv->bin)) {
g_set_weak_pointer (&priv->last_focus, priv->focus_widget);
set_focus (self, focus);
return;
--
2.51.1

View File

@ -0,0 +1,58 @@
From 6f3f393fc671fb9366307261afe53713b05a8c6e Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Sat, 2 Aug 2025 01:32:43 +0400
Subject: [PATCH 05/18] dialog: Don't skip activation in window-backed dialogs
Oops, I thought this would propagate it to the window, but apparently not.
Fixes https://gitlab.gnome.org/GNOME/libadwaita/-/issues/1062
(cherry picked from commit b2f55904166088d9d84df4f1f69dba3cc84bcc83)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 59a2319fac62bd6a68a4f3d1709d14bd80d6cdb6)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-dialog.c | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/src/adw-dialog.c b/src/adw-dialog.c
index be62ae17..bcfcf6db 100644
--- a/src/adw-dialog.c
+++ b/src/adw-dialog.c
@@ -661,13 +661,7 @@ present_as_window (AdwDialog *self,
static gboolean
activate_focus_cb (AdwDialog *self)
{
- AdwDialogPrivate *priv = adw_dialog_get_instance_private (self);
- GtkRoot *root;
-
- if (priv->window)
- return GDK_EVENT_PROPAGATE;
-
- root = gtk_widget_get_root (GTK_WIDGET (self));
+ GtkRoot *root = gtk_widget_get_root (GTK_WIDGET (self));
if (!GTK_IS_WINDOW (root))
return GDK_EVENT_PROPAGATE;
@@ -680,13 +674,7 @@ activate_focus_cb (AdwDialog *self)
static gboolean
activate_default_cb (AdwDialog *self)
{
- AdwDialogPrivate *priv = adw_dialog_get_instance_private (self);
- GtkRoot *root;
-
- if (priv->window)
- return GDK_EVENT_PROPAGATE;
-
- root = gtk_widget_get_root (GTK_WIDGET (self));
+ GtkRoot *root = gtk_widget_get_root (GTK_WIDGET (self));
if (!GTK_IS_WINDOW (root))
return GDK_EVENT_PROPAGATE;
--
2.51.1

View File

@ -0,0 +1,68 @@
From d22d9561de64e134c88fe08897783bf543b55faa Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Sat, 2 Aug 2025 01:32:55 +0400
Subject: [PATCH 06/18] layout-slot: Error out if ID is not set
Fixes https://gitlab.gnome.org/GNOME/libadwaita/-/issues/1059
(cherry picked from commit ad446167acf3e6d1ee693f98ca636268be8592a1)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 991fca4b15b7dcda67618fd97e7ae42133e383d8)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-layout-slot.c | 12 ++++++++++++
src/adw-multi-layout-view.c | 4 ++++
2 files changed, 16 insertions(+)
diff --git a/src/adw-layout-slot.c b/src/adw-layout-slot.c
index 04a15164..6786ae91 100644
--- a/src/adw-layout-slot.c
+++ b/src/adw-layout-slot.c
@@ -58,6 +58,17 @@ adw_layout_slot_root (GtkWidget *widget)
adw_multi_layout_view_register_slot (ADW_MULTI_LAYOUT_VIEW (view), self->id, widget);
}
+static void
+adw_layout_slot_constructed (GObject *object)
+{
+ AdwLayoutSlot *self = ADW_LAYOUT_SLOT (object);
+
+ G_OBJECT_CLASS (adw_layout_slot_parent_class)->constructed (object);
+
+ if (!self->id)
+ g_error ("AdwLayoutSlot %p created without an ID", self);
+}
+
static void
adw_layout_slot_finalize (GObject *object)
{
@@ -108,6 +119,7 @@ adw_layout_slot_class_init (AdwLayoutSlotClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ object_class->constructed = adw_layout_slot_constructed;
object_class->finalize = adw_layout_slot_finalize;
object_class->get_property = adw_layout_slot_get_property;
object_class->set_property = adw_layout_slot_set_property;
diff --git a/src/adw-multi-layout-view.c b/src/adw-multi-layout-view.c
index 4c372bdb..2e37a53f 100644
--- a/src/adw-multi-layout-view.c
+++ b/src/adw-multi-layout-view.c
@@ -685,6 +685,10 @@ adw_multi_layout_view_register_slot (AdwMultiLayoutView *self,
const char *id,
GtkWidget *slot)
{
+ g_return_if_fail (ADW_IS_MULTI_LAYOUT_VIEW (self));
+ g_return_if_fail (id != NULL);
+ g_return_if_fail (GTK_IS_WIDGET (slot));
+
if (!self->accepting_slots)
return;
--
2.51.1

View File

@ -0,0 +1,126 @@
From a33fb6964727715e053787c55d968dbb7dd21275 Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Sat, 2 Aug 2025 01:33:20 +0400
Subject: [PATCH 07/18] navigation-view: Defer swipe start to ::begin-swipe
Fixes https://gitlab.gnome.org/GNOME/libadwaita/-/issues/1065
(cherry picked from commit c6ba55c52a45c15bb05aeb82cc830a9870dae253)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit a5013cae5162c78a71c3e56838f890fffaa24331)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-navigation-view.c | 40 +++++++++++++++++++++++++++++++++------
1 file changed, 34 insertions(+), 6 deletions(-)
diff --git a/src/adw-navigation-view.c b/src/adw-navigation-view.c
index 5d997f59..7a9486ce 100644
--- a/src/adw-navigation-view.c
+++ b/src/adw-navigation-view.c
@@ -277,6 +277,7 @@ struct _AdwNavigationView
gboolean transition_cancel;
double transition_progress;
gboolean gesture_active;
+ AdwNavigationDirection swipe_direction;
AdwShadowHelper *shadow_helper;
AdwSwipeTracker *swipe_tracker;
@@ -1209,22 +1210,41 @@ static void
prepare_cb (AdwSwipeTracker *tracker,
AdwNavigationDirection direction,
AdwNavigationView *self)
+{
+ if (!adw_navigation_view_get_visible_page (self))
+ return;
+
+ self->swipe_direction = ADW_NAVIGATION_DIRECTION_BACK;
+}
+
+static void
+begin_swipe_cb (AdwSwipeTracker *tracker,
+ AdwNavigationView *self)
{
AdwNavigationPage *visible_page = adw_navigation_view_get_visible_page (self);
AdwNavigationPage *new_page;
gboolean remove_on_pop = FALSE;
- if (!visible_page)
+ if (self->swipe_direction < 0)
+ return;
+
+ if (!visible_page) {
+ self->swipe_direction = -1;
return;
+ }
- if (direction == ADW_NAVIGATION_DIRECTION_BACK) {
- if (!adw_navigation_page_get_can_pop (visible_page))
+ if (self->swipe_direction == ADW_NAVIGATION_DIRECTION_BACK) {
+ if (!adw_navigation_page_get_can_pop (visible_page)) {
+ self->swipe_direction = -1;
return;
+ }
new_page = adw_navigation_view_get_previous_page (self, visible_page);
- if (!new_page)
+ if (!new_page) {
+ self->swipe_direction = -1;
return;
+ }
} else {
new_page = get_next_page (self);
@@ -1242,9 +1262,9 @@ prepare_cb (AdwSwipeTracker *tracker,
self->showing_page = new_page;
self->hiding_page = g_object_ref (visible_page);
- self->transition_pop = (direction == ADW_NAVIGATION_DIRECTION_BACK);
+ self->transition_pop = (self->swipe_direction == ADW_NAVIGATION_DIRECTION_BACK);
- if (direction == ADW_NAVIGATION_DIRECTION_BACK) {
+ if (self->swipe_direction == ADW_NAVIGATION_DIRECTION_BACK) {
g_object_ref (new_page);
} else {
if (remove_on_pop)
@@ -1269,6 +1289,8 @@ prepare_cb (AdwSwipeTracker *tracker,
gtk_widget_queue_resize (GTK_WIDGET (self));
adw_swipe_tracker_set_upper_overshoot (self->swipe_tracker, TRUE);
+
+ self->swipe_direction = -1;
}
static void
@@ -1295,6 +1317,8 @@ end_swipe_cb (AdwSwipeTracker *tracker,
{
gboolean animate;
+ self->swipe_direction = -1;
+
if (!self->gesture_active)
return;
@@ -1911,11 +1935,15 @@ adw_navigation_view_init (AdwNavigationView *self)
g_signal_connect (self->swipe_tracker, "prepare",
G_CALLBACK (prepare_cb), self);
+ g_signal_connect (self->swipe_tracker, "begin-swipe",
+ G_CALLBACK (begin_swipe_cb), self);
g_signal_connect (self->swipe_tracker, "update-swipe",
G_CALLBACK (update_swipe_cb), self);
g_signal_connect (self->swipe_tracker, "end-swipe",
G_CALLBACK (end_swipe_cb), self);
+ self->swipe_direction = -1;
+
self->shield = adw_gizmo_new ("widget", NULL, NULL, NULL, NULL, NULL, NULL);
gtk_widget_set_child_visible (self->shield, FALSE);
gtk_widget_set_parent (self->shield, GTK_WIDGET (self));
--
2.51.1

33
0051-Release-1.6.9.patch Normal file
View File

@ -0,0 +1,33 @@
From 3a8401cf61c21ca1d49f27f5b6aaddc1c372834d Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Sat, 2 Aug 2025 01:42:03 +0400
Subject: [PATCH 09/18] Release 1.6.9
---
NEWS | 16 ++++++++++++++++
meson.build | 4 ++--
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 8a733039..ab6bf2a7 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('libadwaita', 'c',
- version: '1.6.8',
+ version: '1.6.9',
license: 'LGPL-2.1-or-later',
meson_version: '>= 0.59.0',
default_options: [ 'warning_level=1', 'buildtype=debugoptimized', 'c_std=gnu11' ],
@@ -29,7 +29,7 @@ package_api_name = '@0@-@1@'.format(meson.project_name(), apiversion)
# to 0. When bumping the second version, set the third one to zero.
#
# A lot easier than libtool, right?
-libversion = '0.6.8'
+libversion = '0.6.9'
# The so major version of the library
soversion = 0
--
2.51.1

View File

@ -0,0 +1,37 @@
From 6729ade2742cae161196fe3a6f5168e40a075b7c Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:33:59 +0400
Subject: [PATCH 10/18] toast-widget: Make the button insensitive after a click
Otherwise we risk emitting ::button-clicked multiple times.
Fixes https://gitlab.gnome.org/GNOME/libadwaita/-/issues/1070
(cherry picked from commit fe38eefd9b8c14efbf8758c0e593942ff3cd3d05)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 15f32c4795f02c58a45b900f9437898060bc81ae)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-toast-widget.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/adw-toast-widget.c b/src/adw-toast-widget.c
index 77dd167e..10ba8323 100644
--- a/src/adw-toast-widget.c
+++ b/src/adw-toast-widget.c
@@ -102,6 +102,8 @@ action_clicked_cb (AdwToastWidget *self)
{
end_timeout (self);
+ gtk_widget_set_sensitive (self->action_button, FALSE);
+
g_signal_emit_by_name (self->toast, "button-clicked");
/* Keep the widget alive through the idle. Otherwise it may be immediately
--
2.51.1

View File

@ -0,0 +1,63 @@
From c1f28b10a5d03173f6b92d82ae79572eef50a222 Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:34:30 +0400
Subject: [PATCH 11/18] alert-dialog: Clarify :default-response docs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes https://gitlab.gnome.org/GNOME/libadwaita/-/issues/1044
(cherry picked from commit 575338b9ba22a365978f75b479f44ec4bc38744b)
Co-authored-by: Lukáš Tyrychtr <ltyrycht@redhat.com>
(cherry picked from commit 38ce8b584ce1d9e71c3d4ab27280ddeea2d9a512)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-alert-dialog.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/adw-alert-dialog.c b/src/adw-alert-dialog.c
index 24347cb8..da46a557 100644
--- a/src/adw-alert-dialog.c
+++ b/src/adw-alert-dialog.c
@@ -979,10 +979,13 @@ adw_alert_dialog_class_init (AdwAlertDialogClass *klass)
*
* The response ID of the default response.
*
- * If set, pressing <kbd>Enter</kbd> will activate the corresponding button.
+ * The button corresponding to this response will be set as the default widget
+ * of the dialog.
*
- * If set to `NULL` or a non-existent response ID, pressing <kbd>Enter</kbd>
- * will do nothing.
+ * If not set, the default widget will not be set, and the last added response
+ * will be focused by default.
+ *
+ * See [property@Dialog:default-widget].
*
* Since: 1.5
*/
@@ -2316,10 +2319,13 @@ adw_alert_dialog_get_default_response (AdwAlertDialog *self)
*
* Sets the ID of the default response of @self.
*
- * If set, pressing <kbd>Enter</kbd> will activate the corresponding button.
+ * The button corresponding to this response will be set as the default widget
+ * of @self.
+ *
+ * If not set, the default widget will not be set, and the last added response
+ * will be focused by default.
*
- * If set to `NULL` or to a non-existent response ID, pressing <kbd>Enter</kbd>
- * will do nothing.
+ * See [property@Dialog:default-widget].
*
* Since: 1.5
*/
--
2.51.1

View File

@ -0,0 +1,60 @@
From 18db0c999afc7eb20fa8e6d699017d78f5183cd1 Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:34:35 +0400
Subject: [PATCH 12/18] message-dialog: Clarify :default-response docs
Same as last commit.
(cherry picked from commit b3a4069fda4abf7fa15a16f929190acfc872e971)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 42db3cbd5d69afd4b78be47637b329b68ad86dc1)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-message-dialog.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/adw-message-dialog.c b/src/adw-message-dialog.c
index ed028d53..5845dc91 100644
--- a/src/adw-message-dialog.c
+++ b/src/adw-message-dialog.c
@@ -1079,10 +1079,13 @@ adw_message_dialog_class_init (AdwMessageDialogClass *klass)
*
* The response ID of the default response.
*
- * If set, pressing <kbd>Enter</kbd> will activate the corresponding button.
+ * The button corresponding to this response will be set as the default widget
+ * of the dialog.
*
- * If set to `NULL` or a non-existent response ID, pressing <kbd>Enter</kbd>
- * will do nothing.
+ * If not set, the default widget will not be set, and the last added response
+ * will be focused by default.
+ *
+ * See [property@Gtk.Window:default-widget].
*
* Since: 1.2
* Deprecated: 1.6: Use [class@AlertDialog].
@@ -2384,10 +2387,13 @@ adw_message_dialog_get_default_response (AdwMessageDialog *self)
*
* Sets the ID of the default response of @self.
*
- * If set, pressing <kbd>Enter</kbd> will activate the corresponding button.
+ * The button corresponding to this response will be set as the default widget
+ * of @self.
+ *
+ * If not set, the default widget will not be set, and the last added response
+ * will be focused by default.
*
- * If set to `NULL` or to a non-existent response ID, pressing <kbd>Enter</kbd>
- * will do nothing.
+ * See [property@Gtk.Widget:default-widget].
*
* Since: 1.2
* Deprecated: 1.6: Use [class@AlertDialog].
--
2.51.1

View File

@ -0,0 +1,32 @@
From bdf0fa3aa5a9a1755d8f48db8ea4efeddba6d624 Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:34:45 +0400
Subject: [PATCH 13/18] message-dialog: Fix a warning when building docs
(cherry picked from commit 108f2943ff6c73e0fdf8cae20a51cedeb53515dd)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 09199c01435b94dcb702f3ce5461552ceb38d497)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-message-dialog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/adw-message-dialog.c b/src/adw-message-dialog.c
index 5845dc91..78557325 100644
--- a/src/adw-message-dialog.c
+++ b/src/adw-message-dialog.c
@@ -2393,7 +2393,7 @@ adw_message_dialog_get_default_response (AdwMessageDialog *self)
* If not set, the default widget will not be set, and the last added response
* will be focused by default.
*
- * See [property@Gtk.Widget:default-widget].
+ * See [property@Gtk.Window:default-widget].
*
* Since: 1.2
* Deprecated: 1.6: Use [class@AlertDialog].
--
2.51.1

View File

@ -0,0 +1,41 @@
From 9e832f81ba390af42e8969858a2b4c18b697ae6f Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:35:06 +0400
Subject: [PATCH 14/18] demo: Plug FileDialog leaks
(cherry picked from commit 0aba6a51aab669e2b2db92fe24fac46d3d12cac6)
Co-authored-by: Maximiliano Sandoval <msandova@gnome.org>
(cherry picked from commit fa735f0f84370c3d049786d78ebca57826ba8866)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
demo/pages/avatar/adw-demo-page-avatar.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/demo/pages/avatar/adw-demo-page-avatar.c b/demo/pages/avatar/adw-demo-page-avatar.c
index 2bc9da39..b295df4c 100644
--- a/demo/pages/avatar/adw-demo-page-avatar.c
+++ b/demo/pages/avatar/adw-demo-page-avatar.c
@@ -134,6 +134,8 @@ avatar_open_cb (AdwDemoPageAvatar *self)
NULL,
(GAsyncReadyCallback) avatar_open_dialog_cb,
self);
+
+ g_object_unref (dialog);
}
static void
@@ -176,6 +178,8 @@ avatar_save_cb (AdwDemoPageAvatar *self)
NULL,
(GAsyncReadyCallback) avatar_save_dialog_cb,
self);
+
+ g_object_unref (dialog);
}
static void
--
2.51.1

View File

@ -0,0 +1,36 @@
From 738f71b99df68bd391f20ee6da7f025f8e3f5ad4 Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:35:12 +0400
Subject: [PATCH 15/18] swipe-tracker: Plug snap points leak
As per the docs of adw_swipeable_get_snap_points, the points are
transfer full.
(cherry picked from commit 163b7743a81761a655d9520d35c0180206177510)
Co-authored-by: Maximiliano Sandoval <msandova@gnome.org>
(cherry picked from commit 5b8608b944d2a441a082d88abf3ab06d0bb5854e)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-swipe-tracker.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/adw-swipe-tracker.c b/src/adw-swipe-tracker.c
index 07581638..4d263dbc 100644
--- a/src/adw-swipe-tracker.c
+++ b/src/adw-swipe-tracker.c
@@ -345,6 +345,8 @@ calculate_velocity (AdwSwipeTracker *self)
else
get_range (self, &lower, &upper);
+ g_free (points);
+
if (self->progress <= lower) {
if (self->lower_overshoot && self->progress > lower)
velocity *= adjust_for_overshoot (self, lower - self->progress) / (lower - self->progress);
--
2.51.1

View File

@ -0,0 +1,44 @@
From 8ec6de0e1189174556ddc6bb34b082953bc9f397 Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:35:25 +0400
Subject: [PATCH 16/18] doc: Grammar/typo fixes
Fixes https://gitlab.gnome.org/GNOME/libadwaita/-/issues/1076
(cherry picked from commit c1d3d1436aa93208ee60db0aebc846a4d47b9a14)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 719db2ed1b6e7219a255b1b609c94cebaa6b2c15)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
doc/css-variables.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/css-variables.md b/doc/css-variables.md
index 1b70ea3b..60c0ba8b 100644
--- a/doc/css-variables.md
+++ b/doc/css-variables.md
@@ -69,7 +69,7 @@ are automatically derived from the background color, so it's not necesssary to
override them manually when setting app-wide accent color.
However, when overriding the background colors for specific widgets, the
-standalone colors must overridden too, as follows:
+standalone colors must be overridden too, as follows:
```css
my-widget {
@@ -1202,7 +1202,7 @@ as the following set of variables:
# Compatibility Colors
-A number of colors has been available in Adwaita in GTK3. They are aliases of
+A number of colors have been available in Adwaita in GTK3. They are aliases of
UI colors or otherwise derived from them. These colors use the older
GTK-specific syntax for named colors rather than CSS variables, and don't pick
up overridden colors. As such, it's recommended to avoid using these colors
--
2.51.1

View File

@ -0,0 +1,59 @@
From 3ce6356dfbaf544835d22b5a24a3d466d7ac4505 Mon Sep 17 00:00:00 2001
From: Alice <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:35:34 +0400
Subject: [PATCH 17/18] spinner: Switch to progress bar accessible role
Unlike GtkSpinner, we don't have start/stop API, so just have it as
always busy.
Fixes https://gitlab.gnome.org/GNOME/libadwaita/-/issues/904
(cherry picked from commit f18889012f3c58f4939ddc76914b46ad96415100)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 8da81dd889b2b7b936ee3aab45c8d1ceb2f4413e)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
---
src/adw-spinner.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/adw-spinner.c b/src/adw-spinner.c
index a494436a..252bc9d0 100644
--- a/src/adw-spinner.c
+++ b/src/adw-spinner.c
@@ -50,6 +50,10 @@
* `AdwSpinner` has a single node with the name `image` and the style class
* `.spinner`.
*
+ * ## Accessibility
+ *
+ * `AdwSpinner` uses the [enum@Gtk.AccessibleRole.progress-bar] role.
+ *
* Since: 1.6
*/
@@ -117,6 +121,7 @@ adw_spinner_class_init (AdwSpinnerClass *klass)
widget_class->snapshot = adw_spinner_snapshot;
gtk_widget_class_set_css_name (widget_class, "image");
+ gtk_widget_class_set_accessible_role (widget_class, GTK_ACCESSIBLE_ROLE_PROGRESS_BAR);
}
static void
@@ -130,6 +135,10 @@ adw_spinner_init (AdwSpinner *self)
G_CALLBACK (gtk_widget_queue_resize), self);
g_signal_connect_swapped (self->paintable, "invalidate-contents",
G_CALLBACK (gtk_widget_queue_draw), self);
+
+ gtk_accessible_update_state (GTK_ACCESSIBLE (self),
+ GTK_ACCESSIBLE_STATE_BUSY, TRUE,
+ -1);
}
/**
--
2.51.1

33
0060-Release-1.6.10.patch Normal file
View File

@ -0,0 +1,33 @@
From e35abc606ab4c7c04965cd82cec7c1eebd134e7c Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@gnome.org>
Date: Fri, 12 Sep 2025 23:37:56 +0400
Subject: [PATCH 18/18] Release 1.6.10
---
NEWS | 17 +++++++++++++++++
meson.build | 4 ++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index ab6bf2a7..f135d17b 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('libadwaita', 'c',
- version: '1.6.9',
+ version: '1.6.10',
license: 'LGPL-2.1-or-later',
meson_version: '>= 0.59.0',
default_options: [ 'warning_level=1', 'buildtype=debugoptimized', 'c_std=gnu11' ],
@@ -29,7 +29,7 @@ package_api_name = '@0@-@1@'.format(meson.project_name(), apiversion)
# to 0. When bumping the second version, set the third one to zero.
#
# A lot easier than libtool, right?
-libversion = '0.6.9'
+libversion = '0.6.10'
# The so major version of the library
soversion = 0
--
2.51.1

View File

@ -5,7 +5,7 @@
%global tarball_version 1.6.2
Name: libadwaita
Version: 1.6.8
Version: 1.6.10
Release: %autorelease
Summary: Building blocks for modern GNOME applications
@ -17,6 +17,8 @@ Source0: https://download.gnome.org/sources/%{name}/1.6/%{name}-%{tarball
# Backports for post-1.6.2. What would be patch 0004
# removed pre-generated CSS support making /usr/bin/sassc
# a build requirement that we cannot/will-not use.
# Some other patches are skipped (hitboxes for SCSS reasons)
# and unrelated CI changes.
Patch: 0001-dialog-Properly-unparent-the-child-when-backed-by-a-.patch
Patch: 0002-dialog-Handle-close-before-and-right-after-present.patch
Patch: 0003-bottom-sheet-Fix-more-criticals-on-dispose.patch
@ -58,6 +60,22 @@ Patch: 0039-test-combo-row-Fix-a-leak.patch
Patch: 0040-about-dialog-window-Fix-a-leak.patch
Patch: 0041-accent-color-Move-yellow-green-boundary-a-bit.patch
Patch: 0042-Release-1.6.8.patch
Patch: 0043-alert-dialog-emit-response-when-cancelled.patch
Patch: 0044-message-dialog-emit-response-when-cancelled-too.patch
Patch: 0046-dialog-Don-t-always-try-to-check-can-focus-on-bin.patch
Patch: 0047-dialog-Don-t-skip-activation-in-window-backed-dialog.patch
Patch: 0048-layout-slot-Error-out-if-ID-is-not-set.patch
Patch: 0049-navigation-view-Defer-swipe-start-to-begin-swipe.patch
Patch: 0051-Release-1.6.9.patch
Patch: 0052-toast-widget-Make-the-button-insensitive-after-a-cli.patch
Patch: 0053-alert-dialog-Clarify-default-response-docs.patch
Patch: 0054-message-dialog-Clarify-default-response-docs.patch
Patch: 0055-message-dialog-Fix-a-warning-when-building-docs.patch
Patch: 0056-demo-Plug-FileDialog-leaks.patch
Patch: 0057-swipe-tracker-Plug-snap-points-leak.patch
Patch: 0058-doc-Grammar-typo-fixes.patch
Patch: 0059-spinner-Switch-to-progress-bar-accessible-role.patch
Patch: 0060-Release-1.6.10.patch
BuildRequires: desktop-file-utils
BuildRequires: gcc