From 532a6bfd88487907a2c42710c38c14c836c9a341 Mon Sep 17 00:00:00 2001 From: waker Date: Tue, 20 Aug 2013 19:58:00 +0200 Subject: gtkui: smooth scrolling event dumper for gtk3.4+ --- plugins/gtkui/ddblistview.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/gtkui/ddblistview.c b/plugins/gtkui/ddblistview.c index 13ea8e6e..19c826db 100644 --- a/plugins/gtkui/ddblistview.c +++ b/plugins/gtkui/ddblistview.c @@ -377,6 +377,9 @@ ddb_listview_init(DdbListview *listview) int events = GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK; #if GTK_CHECK_VERSION(3,0,0) events |= GDK_SCROLL_MASK; +#endif +#if GTK_CHECK_VERSION(3,4,0) + events |= GDK_SMOOTH_SCROLL_MASK; #endif gtk_widget_set_events (listview->list, events); @@ -828,6 +831,16 @@ ddb_listview_vscroll_event (GtkWidget *widget, GdkEventScroll *ev = (GdkEventScroll*)event; GtkWidget *range = ps->scrollbar; GtkWidget *list = ps->list; +#if GTK_CHECK_VERSION(3,4,0) + if (((GdkEventScroll *)event)->direction == GDK_SCROLL_SMOOTH) { + gdouble x, y; + gboolean res = gdk_event_get_scroll_deltas(event, &x, &y); + trace ("scroll delta %f\n", (float)y); + } + else { + trace ("scrolldir: %d\n", (int)((GdkEventScroll *)event)->direction); + } +#endif // pass event to scrollbar int newscroll = gtk_range_get_value (GTK_RANGE (range)); if (ev->direction == GDK_SCROLL_UP) { -- cgit v1.2.3