From fb6f211869cd03b43a92ccd828389bff0b99ba1c Mon Sep 17 00:00:00 2001 From: Khalid Abu Shawarib Date: Fri, 27 Sep 2024 19:15:41 +0300 Subject: [PATCH] label: Don't set a11y label when role is presentation This resolves issue with labels of model buttons being set to presentation a11y role but still have a11y label. See: https://gitlab.gnome.org/GNOME/gtk/-/blob/b7e5a79468312706e7465caed2cd55badbee432d/gtk/gtkmodelbutton.c?page=2#L1539 --- gtk/gtklabel.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 156f060626..60d263998c 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -3204,6 +3204,8 @@ static void gtk_label_set_text_internal (GtkLabel *self, char *str) { + GtkAccessibleRole role; + if (g_strcmp0 (self->text, str) == 0) { g_free (str); @@ -3213,10 +3215,15 @@ gtk_label_set_text_internal (GtkLabel *self, g_free (self->text); self->text = str; - gtk_accessible_update_property (GTK_ACCESSIBLE (self), - GTK_ACCESSIBLE_PROPERTY_LABEL, - self->text, - -1); + role = gtk_accessible_get_accessible_role (GTK_ACCESSIBLE (self)); + + if (gtk_accessible_role_get_naming (role) != GTK_ACCESSIBLE_NAME_PROHIBITED) + { + gtk_accessible_update_property (GTK_ACCESSIBLE (self), + GTK_ACCESSIBLE_PROPERTY_LABEL, + self->text, + -1); + } gtk_label_select_region_index (self, 0, 0); }