seek: Explicitely call gst_x_overlay_expose() from the GtkDrawingArea expose/draw...
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 20 Feb 2012 13:09:28 +0000 (14:09 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 20 Feb 2012 13:09:28 +0000 (14:09 +0100)
tests/examples/seek/seek.c

index 3f63f35..2222323 100644 (file)
@@ -2459,6 +2459,7 @@ msg_clock_lost (GstBus * bus, GstMessage * message, GstPipeline * data)
 
 #if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32)
 
+static GstElement *xoverlay_element = NULL;
 static gulong embed_xid = 0;
 
 /* We set the xid here in response to the prepare-xwindow-id message via a
@@ -2473,6 +2474,8 @@ bus_sync_handler (GstBus * bus, GstMessage * message, GstPipeline * data)
       gst_structure_has_name (message->structure, "prepare-xwindow-id")) {
     GstElement *element = GST_ELEMENT (GST_MESSAGE_SRC (message));
 
+    xoverlay_element = element;
+
     g_print ("got prepare-xwindow-id, setting XID %lu\n", embed_xid);
 
     if (g_object_class_find_property (G_OBJECT_GET_CLASS (element),
@@ -2506,6 +2509,10 @@ draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data)
     cairo_fill (cr);
     return TRUE;
   }
+
+  if (xoverlay_element)
+    gst_x_overlay_expose (GST_X_OVERLAY (xoverlay_element));
+
   return FALSE;
 }