1 diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
2 index fc25098..de9a4b0 100644
6 #define MENU_SCROLL_FAST_ZONE 8
7 #define MENU_SCROLL_TIMEOUT1 50
8 #define MENU_SCROLL_TIMEOUT2 20
9 +#define GTK_SCROLL_STEP_SMOOTH 2
11 #define ATTACH_INFO_KEY "gtk-menu-child-attach-info-key"
12 #define ATTACHED_MENUS "gtk-attached-menus"
13 @@ -3504,17 +3505,25 @@ gtk_menu_scroll (GtkWidget *widget,
14 GdkEventScroll *event)
16 GtkMenu *menu = GTK_MENU (widget);
19 - switch (event->direction)
20 + if (gdk_event_get_scroll_deltas ((GdkEvent *) event, &dx, &dy))
22 - case GDK_SCROLL_RIGHT:
23 - case GDK_SCROLL_DOWN:
24 - gtk_menu_scroll_by (menu, MENU_SCROLL_STEP2);
26 - case GDK_SCROLL_LEFT:
28 - gtk_menu_scroll_by (menu, - MENU_SCROLL_STEP2);
30 + gtk_menu_scroll_by (menu, GTK_SCROLL_STEP_SMOOTH * dy);
34 + switch (event->direction)
36 + case GDK_SCROLL_RIGHT:
37 + case GDK_SCROLL_DOWN:
38 + gtk_menu_scroll_by (menu, MENU_SCROLL_STEP2);
40 + case GDK_SCROLL_LEFT:
42 + gtk_menu_scroll_by (menu, - MENU_SCROLL_STEP2);