summaryrefslogtreecommitdiff
path: root/gtk/gtkkineticscrolling.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkkineticscrolling.c')
-rw-r--r--gtk/gtkkineticscrolling.c29
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)
{