131
131
g_return_if_fail (IS_VOLUME_WIDGET (userdata));
132
132
VolumeWidget* mitem = VOLUME_WIDGET(userdata);
133
133
VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);
135
134
if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_LEVEL, property) == 0){
136
135
g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_DOUBLE) );
137
136
if(priv->grabbed == FALSE){
138
137
GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
139
138
GtkRange *range = (GtkRange*)slider;
140
139
gdouble update = g_variant_get_double (value);
141
g_debug ("volume widget volume prop update with %f", update);
141
143
gtk_range_set_value(range, update);
142
144
update_accessible_desc(priv->indicator);
145
147
if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_MUTE, property) == 0){
146
149
g_debug ("volume widget - mute update ");
151
g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_INT32) );
147
152
if(priv->grabbed == FALSE){
148
153
GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
149
154
GtkRange *range = (GtkRange*)slider;
150
155
gint update = g_variant_get_int32 (value);
153
159
g_debug ("volume widget - mute update %i", update);
155
162
if (update == 1){
198
207
g_return_val_if_fail (IS_VOLUME_WIDGET (user_data), FALSE);
199
208
VolumeWidget* mitem = VOLUME_WIDGET(user_data);
200
//g_debug ("changed value %f", new_value);
201
volume_widget_update(mitem, new_value);
210
g_debug ("changed value %f", new_value);
212
volume_widget_update(mitem, new_value, "change-value");
215
226
VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);
216
227
GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
217
228
gdouble current_value = CLAMP(gtk_range_get_value(GTK_RANGE(slider)), 0, 100);
218
//g_debug ("value changed %f", gtk_range_get_value(GTK_RANGE(slider)));
230
g_debug ("value changed %f", gtk_range_get_value(GTK_RANGE(slider)));
219
233
gint mute = g_variant_get_int32 (dbusmenu_menuitem_property_get_variant (priv->twin_item,
220
234
DBUSMENU_VOLUME_MENUITEM_MUTE));
222
236
if((current_value == 0 && mute != 1) || current_value == 100){
223
volume_widget_update(mitem, current_value);
238
g_debug ("value changed - actual set %f", current_value);
240
volume_widget_update(mitem, current_value, "value-changed");
230
volume_widget_update(VolumeWidget* self, gdouble update)
247
volume_widget_update(VolumeWidget* self, gdouble update, gchar* label)
249
gchar* source = NULL;
252
source = "v widget update";
232
254
VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(self);
233
255
gdouble clamped = CLAMP(update, 0, 100);
234
256
GVariant* new_volume = g_variant_new_double(clamped);
235
dbusmenu_menuitem_handle_event (priv->twin_item, "update", new_volume, 0);
257
dbusmenu_menuitem_handle_event (priv->twin_item, source, new_volume, 0);