diff options
Diffstat (limited to 'gtk/gtkkineticscrolling.c')
-rw-r--r-- | gtk/gtkkineticscrolling.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gtk/gtkkineticscrolling.c b/gtk/gtkkineticscrolling.c index 9036e158dc..497627000b 100644 --- a/gtk/gtkkineticscrolling.c +++ b/gtk/gtkkineticscrolling.c @@ -124,6 +124,35 @@ gtk_kinetic_scrolling_new (gdouble lower, return data; } +GtkKineticScrollingChange +gtk_kinetic_scrolling_update_size (GtkKineticScrolling *data, + gdouble lower, + gdouble upper) +{ + GtkKineticScrollingChange change = GTK_KINETIC_SCROLLING_CHANGE_NONE; + + if (lower != data->lower) + { + if (data->position <= lower) + change |= GTK_KINETIC_SCROLLING_CHANGE_LOWER; + + data->lower = lower; + } + + if (upper != data->upper) + { + if (data->position >= data->upper) + change |= GTK_KINETIC_SCROLLING_CHANGE_UPPER; + + data->upper = upper; + } + + if (data->phase == GTK_KINETIC_SCROLLING_PHASE_OVERSHOOTING) + change |= GTK_KINETIC_SCROLLING_CHANGE_IN_OVERSHOOT; + + return change; +} + void gtk_kinetic_scrolling_free (GtkKineticScrolling *kinetic) { |