diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-05-20 20:57:34 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-05-20 20:57:34 +0000 |
commit | c4607f72d1cb99b7f2cead956dbc597b9fddd227 (patch) | |
tree | 6718d12f442bc96507718393111bddc3783a8d58 | |
parent | f5f4c3cdfc0bef8fc73711b54929d26efd05cec3 (diff) | |
parent | 9a1b4a766fd9c7ee6f834df9d1fe6b467334a693 (diff) | |
download | gtk+-c4607f72d1cb99b7f2cead956dbc597b9fddd227.tar.gz |
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1950
-rw-r--r-- | gtk/gtkmediacontrols.c | 8 | ||||
-rw-r--r-- | gtk/gtkmediastream.c | 16 |
2 files changed, 16 insertions, 8 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); } /** diff --git a/gtk/gtkmediastream.c b/gtk/gtkmediastream.c index 1222277143..09c1230595 100644 --- a/gtk/gtkmediastream.c +++ b/gtk/gtkmediastream.c @@ -313,7 +313,7 @@ gtk_media_stream_class_init (GtkMediaStreamClass *class) P_("Error"), P_("Error the stream is in"), G_TYPE_ERROR, - G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); /** * GtkMediaStream:has-audio: @@ -325,7 +325,7 @@ gtk_media_stream_class_init (GtkMediaStreamClass *class) P_("Has audio"), P_("Whether the stream contains audio"), FALSE, - G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); /** * GtkMediaStream:has-video: @@ -337,7 +337,7 @@ gtk_media_stream_class_init (GtkMediaStreamClass *class) P_("Has video"), P_("Whether the stream contains video"), FALSE, - G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); /** * GtkMediaStream:playing: @@ -441,11 +441,11 @@ gtk_media_stream_class_init (GtkMediaStreamClass *class) * Volume of the audio stream. */ properties[PROP_VOLUME] = - g_param_spec_boolean ("volume", - P_("Volume"), - P_("Volume of the audio stream."), - 1.0, - G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + g_param_spec_double ("volume", + P_("Volume"), + P_("Volume of the audio stream."), + 0.0, 1.0, 1.0, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); g_object_class_install_properties (gobject_class, N_PROPS, properties); } |