diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2020-07-28 13:27:50 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2020-07-28 16:59:08 +0100 |
commit | 3294557717b3b5b1d424b3a946b1c81abf09996e (patch) | |
tree | 808c05000416d32d36e0740c13e803035262ff1c /gtk/gtkprogressbar.c | |
parent | 470349c9028a574b2e2a78b3aad2a3620ac7dde6 (diff) | |
download | gtk+-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.c | 18 |
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]); } |