diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-06-04 15:49:02 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-06-04 15:49:02 +0200 |
commit | 80089ebd8b1d276b48950b34957ee9e7e3eee2a8 (patch) | |
tree | 85f656290f5bff09964fa89ce865e98c5e960759 | |
parent | 9c8e7a1329b60111df869941f4f3a8af579c4275 (diff) | |
download | experiment-player-80089ebd8b1d276b48950b34957ee9e7e3eee2a8.tar.gz |
fix transcript scrolling (via wheels/buttons) at the end of the transcript
-rw-r--r-- | lib/gtk-experiment-widgets/gtk-experiment-transcript.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/gtk-experiment-widgets/gtk-experiment-transcript.c b/lib/gtk-experiment-widgets/gtk-experiment-transcript.c index e33a1a0..610f72c 100644 --- a/lib/gtk-experiment-widgets/gtk-experiment-transcript.c +++ b/lib/gtk-experiment-widgets/gtk-experiment-transcript.c @@ -422,15 +422,17 @@ static gboolean scrolled(GtkWidget *widget, GdkEventScroll *event) { GtkExperimentTranscript *trans = GTK_EXPERIMENT_TRANSCRIPT(widget); - GtkAdjustment *adj; - gdouble value; + GtkAdjustment *adj; + gdouble value, real_upper; if (trans->priv->time_adjustment == NULL) return FALSE; - adj = GTK_ADJUSTMENT(trans->priv->time_adjustment); + adj = GTK_ADJUSTMENT(trans->priv->time_adjustment); value = gtk_adjustment_get_value(adj); + real_upper = gtk_adjustment_get_upper(adj) - + gtk_adjustment_get_page_size(adj); switch (event->direction) { case GDK_SCROLL_UP: @@ -442,9 +444,7 @@ scrolled(GtkWidget *widget, GdkEventScroll *event) break; } - if (value <= gtk_adjustment_get_upper(adj) - - gtk_adjustment_get_page_size(adj)) - gtk_adjustment_set_value(adj, value); + gtk_adjustment_set_value(adj, value > real_upper ? real_upper : value); return TRUE; } |