aboutsummaryrefslogtreecommitdiff
path: root/src/indicator-sound.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/indicator-sound.c')
-rw-r--r--src/indicator-sound.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/indicator-sound.c b/src/indicator-sound.c
index eed1e6f..49fa4ed 100644
--- a/src/indicator-sound.c
+++ b/src/indicator-sound.c
@@ -257,6 +257,12 @@ static void catch_signal_sink_volume_update(DBusGProxy *proxy, gdouble volume_pe
{
g_debug("signal caught - update sink volume with value : %f", volume_percent);
GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)volume_slider);
+ gboolean in_use = gtk_widget_has_grab(volume_slider);
+ if(in_use == TRUE)
+ {
+ g_debug("looks like the slider is the UI element in use therefore ignore this volume message => prevent circular semi feedback.");
+ return;
+ }
GtkRange *range = (GtkRange*)slider;
gtk_range_set_value(range, volume_percent);
determine_state_from_volume(volume_percent);