diff options
author | Mike Gorse <mgorse@novell.com> | 2010-09-10 06:09:41 -0400 |
---|---|---|
committer | Mike Gorse <mgorse@novell.com> | 2010-09-10 06:09:41 -0400 |
commit | da0975d5f24d775ac4a03dc100bd61a2be01d69b (patch) | |
tree | 9c6034ae8cf61cd8a466ef72f144a04459ab34d8 | |
parent | 6460fb6b3ea3e69c0cabb63d73d51b983c3cc866 (diff) | |
download | gtk+-da0975d5f24d775ac4a03dc100bd61a2be01d69b.tar.gz |
Gail: Take fill/page size into account when returning a range's maximum value
-rw-r--r-- | modules/other/gail/gailrange.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/modules/other/gail/gailrange.c b/modules/other/gail/gailrange.c index 65fd89af04..07b6d75f7f 100644 --- a/modules/other/gail/gailrange.c +++ b/modules/other/gail/gailrange.c @@ -190,6 +190,9 @@ gail_range_get_maximum_value (AtkValue *obj, GValue *value) { GailRange *range; + GtkRange *gtk_range; + GtkAdjustment *gtk_adjustment; + gdouble max = 0; g_return_if_fail (GAIL_IS_RANGE (obj)); @@ -199,8 +202,20 @@ gail_range_get_maximum_value (AtkValue *obj, * Adjustment has not been specified */ return; - + atk_value_get_maximum_value (ATK_VALUE (range->adjustment), value); + + gtk_range = GTK_RANGE (gtk_accessible_get_widget (GTK_ACCESSIBLE (range))); + g_return_if_fail (gtk_range); + + gtk_adjustment = gtk_range_get_adjustment (gtk_range); + max = g_value_get_double (value); + max -= gtk_adjustment_get_page_size (gtk_adjustment); + + if (gtk_range_get_restrict_to_fill_level (gtk_range)) + max = MIN (max, gtk_range_get_fill_level (gtk_range)); + + g_value_set_double (value, max); } static void |