summaryrefslogtreecommitdiff
path: root/gtk/gtkmediacontrols.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkmediacontrols.c')
-rw-r--r--gtk/gtkmediacontrols.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gtk/gtkmediacontrols.c b/gtk/gtkmediacontrols.c
index 4f09d59feb..417f2d0ff7 100644
--- a/gtk/gtkmediacontrols.c
+++ b/gtk/gtkmediacontrols.c
@@ -51,6 +51,7 @@ struct _GtkMediaControls
GtkWidget *time_label;
GtkWidget *seek_scale;
GtkWidget *duration_label;
+ GtkWidget *volume_button;
};
enum
@@ -288,6 +289,7 @@ gtk_media_controls_class_init (GtkMediaControlsClass *klass)
gtk_widget_class_bind_template_child (widget_class, GtkMediaControls, time_label);
gtk_widget_class_bind_template_child (widget_class, GtkMediaControls, seek_scale);
gtk_widget_class_bind_template_child (widget_class, GtkMediaControls, duration_label);
+ gtk_widget_class_bind_template_child (widget_class, GtkMediaControls, volume_button);
gtk_widget_class_bind_template_callback (widget_class, play_button_clicked);
gtk_widget_class_bind_template_callback (widget_class, time_adjustment_changed);
@@ -439,6 +441,10 @@ update_volume (GtkMediaControls *controls)
volume = gtk_media_stream_get_volume (controls->stream);
gtk_adjustment_set_value (controls->volume_adjustment, volume);
+
+ gtk_widget_set_sensitive (controls->volume_button,
+ controls->stream == NULL ||
+ gtk_media_stream_has_audio (controls->stream));
}
static void
@@ -468,6 +474,8 @@ gtk_media_controls_notify_cb (GtkMediaStream *stream,
update_volume (controls);
else if (g_str_equal (pspec->name, "volume"))
update_volume (controls);
+ else if (g_str_equal (pspec->name, "has-audio"))
+ update_volume (controls);
}
/**