summaryrefslogtreecommitdiff
path: root/gtk/gtkprogressbar.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-07-28 13:27:50 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2020-07-28 16:59:08 +0100
commit3294557717b3b5b1d424b3a946b1c81abf09996e (patch)
tree808c05000416d32d36e0740c13e803035262ff1c /gtk/gtkprogressbar.c
parent470349c9028a574b2e2a78b3aad2a3620ac7dde6 (diff)
downloadgtk+-3294557717b3b5b1d424b3a946b1c81abf09996e.tar.gz
a11y: Update the valuetext attribute of GtkProgressBar
Since progress bars can have a label, we should propagate that information to ATs whenever it's set.
Diffstat (limited to 'gtk/gtkprogressbar.c')
-rw-r--r--gtk/gtkprogressbar.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c
index 08c58ebc50..0b31b893ff 100644
--- a/gtk/gtkprogressbar.c
+++ b/gtk/gtkprogressbar.c
@@ -739,16 +739,16 @@ void
gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
double fraction)
{
+ char *text = NULL;
+
g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar));
pbar->fraction = CLAMP (fraction, 0.0, 1.0);
if (pbar->label)
{
- char *text = get_current_text (pbar);
+ text = get_current_text (pbar);
gtk_label_set_label (GTK_LABEL (pbar->label), text);
-
- g_free (text);
}
gtk_progress_bar_set_activity_mode (pbar, FALSE);
@@ -761,6 +761,18 @@ gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, fraction,
-1);
+ if (text != NULL)
+ {
+ gtk_accessible_update_property (GTK_ACCESSIBLE (pbar),
+ GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT, text,
+ -1);
+ }
+ else
+ {
+ gtk_accessible_reset_property (GTK_ACCESSIBLE (pbar), GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT);
+ }
+
+ g_free (text);
g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_FRACTION]);
}