summaryrefslogtreecommitdiff
path: root/gtk/gtkmediastream.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2018-12-18 02:04:16 +0100
committerBenjamin Otte <otte@redhat.com>2018-12-18 02:04:16 +0100
commit89c48a08a0fe333644b3a888e465d34fd3a8af99 (patch)
tree78caea54fea1ab83b2bf2d53e2b6b74d0de7e47b /gtk/gtkmediastream.c
parentc30968861f5c7c07dfe135ce508b9d2a7a31aea8 (diff)
downloadgtk+-89c48a08a0fe333644b3a888e465d34fd3a8af99.tar.gz
mediastream: Allow multiple calls to gtk_media_stream_error()
Just ignore all further ones.
Diffstat (limited to 'gtk/gtkmediastream.c')
-rw-r--r--gtk/gtkmediastream.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk/gtkmediastream.c b/gtk/gtkmediastream.c
index 86f5c72cc5..f8a5dc8ce9 100644
--- a/gtk/gtkmediastream.c
+++ b/gtk/gtkmediastream.c
@@ -1120,6 +1120,10 @@ gtk_media_stream_unprepared (GtkMediaStream *self)
* your GtkMediaStream.pause() implementation), abort pending seeks
* and mark the stream as prepared.
*
+ * if the stream is already in an error state, this call will be ignored
+ * and the existing error will be retained.
+ * FIXME: Or do we want to set the new error?
+ *
* To unset an error, the stream must be reset via a call to
* gtk_media_stream_unprepared().
**/
@@ -1130,9 +1134,11 @@ gtk_media_stream_gerror (GtkMediaStream *self,
GtkMediaStreamPrivate *priv = gtk_media_stream_get_instance_private (self);
g_return_if_fail (GTK_IS_MEDIA_STREAM (self));
- g_return_if_fail (gtk_media_stream_get_error (self) == NULL);
g_return_if_fail (error != NULL);
+ if (priv->error)
+ return;
+
g_object_freeze_notify (G_OBJECT (self));
priv->error = error;