summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gorse <mgorse@novell.com>2010-09-10 06:09:41 -0400
committerMike Gorse <mgorse@novell.com>2010-09-10 06:09:41 -0400
commitda0975d5f24d775ac4a03dc100bd61a2be01d69b (patch)
tree9c6034ae8cf61cd8a466ef72f144a04459ab34d8
parent6460fb6b3ea3e69c0cabb63d73d51b983c3cc866 (diff)
downloadgtk+-da0975d5f24d775ac4a03dc100bd61a2be01d69b.tar.gz
Gail: Take fill/page size into account when returning a range's maximum value
-rw-r--r--modules/other/gail/gailrange.c17
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