diff options
Diffstat (limited to 'src/stardict-view.c')
-rw-r--r-- | src/stardict-view.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/stardict-view.c b/src/stardict-view.c index 5371475..8eefa1a 100644 --- a/src/stardict-view.c +++ b/src/stardict-view.c @@ -555,3 +555,24 @@ stardict_view_set_matched (StardictView *self, const gchar *matched) self->matched = g_strdup (matched); reload (self); } + +void +stardict_view_scroll (StardictView *self, GtkScrollStep step, gdouble amount) +{ + g_return_if_fail (STARDICT_IS_VIEW (self)); + + GtkWidget *widget = GTK_WIDGET (self); + switch (step) + { + case GTK_SCROLL_STEPS: + self->top_offset += amount * natural_row_size (widget); + break; + case GTK_SCROLL_PAGES: + self->top_offset += amount * gtk_widget_get_allocated_height (widget); + break; + default: + break; + } + + adjust_for_offset (self); +} |