diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2021-10-20 09:46:06 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2021-10-20 09:46:06 +0200 |
commit | dd7b25869824f7e9d443c98f82f594bca7b61af3 (patch) | |
tree | 1dc38a83bb767ee39d4518f78a3727ad8ccf43d6 | |
parent | aa3ad12d44274cf665b53be11f3de2c9fc393664 (diff) | |
download | tdv-dd7b25869824f7e9d443c98f82f594bca7b61af3.tar.gz tdv-dd7b25869824f7e9d443c98f82f594bca7b61af3.tar.xz tdv-dd7b25869824f7e9d443c98f82f594bca7b61af3.zip |
sdgui: make an attempt at smooth scrolling
-rw-r--r-- | src/stardict-view.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/stardict-view.c b/src/stardict-view.c index 8eefa1a..f80a6e2 100644 --- a/src/stardict-view.c +++ b/src/stardict-view.c @@ -395,8 +395,9 @@ stardict_view_realize (GtkWidget *widget) // Input-only would presumably also work (as in GtkPathBar, e.g.), // but it merely seems to involve more work. .wclass = GDK_INPUT_OUTPUT, - .visual = gtk_widget_get_visual (widget), + + // GDK_SMOOTH_SCROLL_MASK is useless, will stop sending UP/DOWN .event_mask = gtk_widget_get_events (widget) | GDK_SCROLL_MASK, }; @@ -481,15 +482,16 @@ stardict_view_scroll_event (GtkWidget *widget, GdkEventScroll *event) switch (event->direction) { case GDK_SCROLL_UP: - self->top_offset -= 3 * natural_row_size (widget); - adjust_for_offset (self); + stardict_view_scroll (self, GTK_SCROLL_STEPS, -3); return TRUE; case GDK_SCROLL_DOWN: - self->top_offset += 3 * natural_row_size (widget); + stardict_view_scroll (self, GTK_SCROLL_STEPS, +3); + return TRUE; + case GDK_SCROLL_SMOOTH: + self->top_offset += event->delta_y; adjust_for_offset (self); return TRUE; default: - // GDK_SCROLL_SMOOTH doesn't fit the intended way of usage return FALSE; } } |