diff --git a/gst/parole-gst.c b/gst/parole-gst.c index 6676675..d881398 100644 --- a/gst/parole-gst.c +++ b/gst/parole-gst.c @@ -36,6 +36,7 @@ #include #include +#include #include #include "parole-gst.h" @@ -213,7 +214,7 @@ parole_gst_realize (GtkWidget *widget) GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK; - mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; + mask = GDK_WA_X | GDK_WA_Y; widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attr, mask); @@ -488,6 +489,8 @@ parole_gst_set_x_overlay (ParoleGst *gst) { GstElement *video_sink; + GDK_THREADS_ENTER (); + g_object_get (G_OBJECT (gst->priv->playbin), "video-sink", &video_sink, NULL); @@ -499,7 +502,7 @@ parole_gst_set_x_overlay (ParoleGst *gst) GDK_WINDOW_XWINDOW (GTK_WIDGET (gst)->window)); gst_object_unref (video_sink); - + GDK_THREADS_LEAVE (); } static gboolean @@ -539,6 +542,7 @@ parole_gst_expose_event (GtkWidget *widget, GdkEventExpose *ev) case GST_STATE_READY: if (gst->priv->target != GST_STATE_PLAYING) parole_gst_helper_draw_logo (PAROLE_GST_HELPER (gst)); + else gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink)); break;