[gtk/video-stop] video: Be consistent about play/pause



commit 20f3d1608d15159f171d8c77859c06ef9c1c4e68
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Jan 1 16:25:54 2021 -0500

    video: Be consistent about play/pause
    
    Always check that the stream is prepared, and the
    widget is mapped, before calling gtk_media_stream_play().

 gtk/gtkvideo.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkvideo.c b/gtk/gtkvideo.c
index 5f3293ba64..7eee5fd5ba 100644
--- a/gtk/gtkvideo.c
+++ b/gtk/gtkvideo.c
@@ -152,7 +152,9 @@ gtk_video_map (GtkWidget *widget)
 
   GTK_WIDGET_CLASS (gtk_video_parent_class)->map (widget);
 
-  if (self->autoplay && self->media_stream)
+  if (self->autoplay &&
+      self->media_stream &&
+      gtk_media_stream_is_prepared (self->media_stream))
     gtk_media_stream_play (self->media_stream);
 }
 
@@ -560,7 +562,9 @@ gtk_video_notify_cb (GtkMediaStream *stream,
     gtk_video_update_playing (self);
   if (g_str_equal (pspec->name, "prepared"))
     {
-      if (self->autoplay && gtk_media_stream_is_prepared (stream))
+      if (self->autoplay &&
+          gtk_media_stream_is_prepared (stream) &&
+          gtk_widget_get_mapped (GTK_WIDGET (self)))
         gtk_media_stream_play (stream);
     }
 }
@@ -618,7 +622,9 @@ gtk_video_set_media_stream (GtkVideo       *self,
                         "notify",
                         G_CALLBACK (gtk_video_notify_cb),
                         self);
-      if (self->autoplay)
+      if (self->autoplay &&
+          gtk_media_stream_is_prepared (stream) &&
+          gtk_widget_get_mapped (GTK_WIDGET (self)))
         gtk_media_stream_play (stream);
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]