diff -ruN /home/joker/wmauda-0.3/wmauda.c /home/joker/wmauda-0.3-wheel/wmauda.c --- /home/joker/wmauda-0.3/wmauda.c 2006-10-31 05:54:08.000000000 +0100 +++ /home/joker/wmauda-0.3-wheel/wmauda.c 2007-02-15 19:36:00.000000000 +0100 @@ -327,6 +327,25 @@ redraw_window(); } +void wheel_scroll_cb(GtkWidget *w, GdkEventScroll *event) +{ + if (xmms_running) + { + if (event->direction == GDK_SCROLL_UP || event->direction == GDK_SCROLL_DOWN) + { + if (event->direction == GDK_SCROLL_UP) + volslider_pos += 3; + else + volslider_pos -= 3; + if (volslider_pos < 0) + volslider_pos = 0; + if (volslider_pos > VOLSLIDER_HEIGHT) + volslider_pos = VOLSLIDER_HEIGHT; + xmms_remote_set_main_volume(xmms_session, (volslider_pos * 100) / VOLSLIDER_HEIGHT); + draw_volslider(); + } + } +} void button_press_cb(GtkWidget *w, GdkEventButton *event, gpointer data) { GList *node; @@ -350,19 +369,6 @@ else xmms_remote_main_win_toggle(xmms_session, 1); } - else if (event->button == 4 || event->button == 5) - { - if (event->button == 4) - volslider_pos += 3; - else - volslider_pos -= 3; - if (volslider_pos < 0) - volslider_pos = 0; - if (volslider_pos > VOLSLIDER_HEIGHT) - volslider_pos = VOLSLIDER_HEIGHT; - xmms_remote_set_main_volume(xmms_session, (volslider_pos * 100) / VOLSLIDER_HEIGHT); - draw_volslider(); - } } if (event->button != 1) @@ -683,6 +689,8 @@ GTK_SIGNAL_FUNC(expose_cb), NULL); gtk_signal_connect(GTK_OBJECT(icon_win), "button_press_event", GTK_SIGNAL_FUNC(button_press_cb), NULL); + gtk_signal_connect(GTK_OBJECT(icon_win), "scroll_event", + GTK_SIGNAL_FUNC(wheel_scroll_cb), NULL); gtk_signal_connect(GTK_OBJECT(icon_win), "button_release_event", GTK_SIGNAL_FUNC(button_release_cb), NULL); gtk_signal_connect(GTK_OBJECT(icon_win), "motion_notify_event",