Author: jannis Date: 2008-06-21 00:47:45 +0000 (Sat, 21 Jun 2008) New Revision: 27094
Modified: xfce4-mixer/trunk/ChangeLog xfce4-mixer/trunk/TODO xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c Log: * panel-plugin/xfce-volume-button.c: Add support for toggling between minimum and last known volume using the middle mouse button. Modified: xfce4-mixer/trunk/ChangeLog =================================================================== --- xfce4-mixer/trunk/ChangeLog 2008-06-21 00:17:03 UTC (rev 27093) +++ xfce4-mixer/trunk/ChangeLog 2008-06-21 00:47:45 UTC (rev 27094) @@ -1,5 +1,11 @@ 2008-06-21 Jannis Pohlmann <[EMAIL PROTECTED]> + * panel-plugin/xfce-volume-button.c: Add support for toggling + between minimum and last known volume using the middle + mouse button. + +2008-06-21 Jannis Pohlmann <[EMAIL PROTECTED]> + * panel-plugin/xfce-volume-button.c: Add support for GDK_Home and GDK_End for changing the volume to the maximum/minimum level. Modified: xfce4-mixer/trunk/TODO =================================================================== --- xfce4-mixer/trunk/TODO 2008-06-21 00:17:03 UTC (rev 27093) +++ xfce4-mixer/trunk/TODO 2008-06-21 00:47:45 UTC (rev 27094) @@ -4,8 +4,7 @@ by updating the corresponding mixer widgets * Write panel plugin + 1) Monitor GStreamer for changes -* Implement Xfconf support - * Allow changing controls from the console, probably via something like: --change-control=SOUNDCARD NAME:TRACK NAME:NEW VALUE Modified: xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c =================================================================== --- xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c 2008-06-21 00:17:03 UTC (rev 27093) +++ xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c 2008-06-21 00:47:45 UTC (rev 27094) @@ -58,6 +58,9 @@ static void xfce_volume_button_key_pressed (GtkWidget *widget, GdkEventKey *event, XfceVolumeButton *button); +static void xfce_volume_button_button_pressed (GtkWidget *widget, + GdkEventButton *event, + XfceVolumeButton *button); static void xfce_volume_button_enter (GtkWidget *widget, GdkEventCrossing *event); static void xfce_volume_button_leave (GtkWidget *widget, @@ -89,6 +92,8 @@ GtkWidget *image; GtkObject *adjustment; + + gdouble previous_value; }; @@ -168,6 +173,7 @@ gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); g_signal_connect (G_OBJECT (button), "key-press-event", G_CALLBACK (xfce_volume_button_key_pressed), button); + g_signal_connect (G_OBJECT (button), "button-press-event", G_CALLBACK (xfce_volume_button_button_pressed), button); g_signal_connect (G_OBJECT (button), "enter-notify-event", G_CALLBACK (xfce_volume_button_enter), NULL); g_signal_connect (G_OBJECT (button), "leave-notify-event", G_CALLBACK (xfce_volume_button_leave), NULL); g_signal_connect (G_OBJECT (button), "scroll-event", G_CALLBACK (xfce_volume_button_scrolled), button); @@ -245,6 +251,8 @@ break; } + button->previous_value = value; + xfce_volume_button_update (button); g_signal_emit_by_name (button, "volume-changed", gtk_adjustment_get_value (GTK_ADJUSTMENT (button->adjustment))); @@ -253,6 +261,39 @@ static void +xfce_volume_button_button_pressed (GtkWidget *widget, + GdkEventButton *event, + XfceVolumeButton *button) +{ + gdouble value; + gdouble min_value; + + g_return_if_fail (IS_XFCE_VOLUME_BUTTON (button)); + + g_object_get (G_OBJECT (button->adjustment), "value", &value, "lower", &min_value, NULL); + + if (event->button == 2) + { + if (gtk_adjustment_get_value (GTK_ADJUSTMENT (button->adjustment)) == min_value) + { + gtk_adjustment_set_value (GTK_ADJUSTMENT (button->adjustment), button->previous_value); + button->previous_value = value; + } + else + { + gtk_adjustment_set_value (GTK_ADJUSTMENT (button->adjustment), min_value); + button->previous_value = value; + } + } + + xfce_volume_button_update (button); + + g_signal_emit_by_name (button, "volume-changed", gtk_adjustment_get_value (GTK_ADJUSTMENT (button->adjustment))); +} + + + +static void xfce_volume_button_enter (GtkWidget *widget, GdkEventCrossing *event) { _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits