From ed1ff251db79faa30ef75cc04802523dbeb681ed Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Mon, 21 Mar 2016 15:23:41 +1100 Subject: [PATCH] gl/examples/3d: additions for wayland support --- tests/examples/gl/gtk/3dvideo/main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/examples/gl/gtk/3dvideo/main.cpp b/tests/examples/gl/gtk/3dvideo/main.cpp index 1d8e5b724d..16692f298e 100644 --- a/tests/examples/gl/gtk/3dvideo/main.cpp +++ b/tests/examples/gl/gtk/3dvideo/main.cpp @@ -47,6 +47,9 @@ typedef struct _localstate static GstBusSyncReply create_window (GstBus * bus, GstMessage * message, GtkWidget * widget) { + if (gst_gtk_handle_need_context (bus, message, NULL)) + return GST_BUS_DROP; + /* ignore anything but 'prepare-window-handle' element messages */ if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT) return GST_BUS_PASS; @@ -107,6 +110,17 @@ draw_cb (GtkWidget * widget, cairo_t * cr, GstElement * videosink) return FALSE; } +static gboolean +resize_cb (GtkWidget * widget, GdkEvent * event, gpointer sink) +{ + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); + gst_video_overlay_set_render_rectangle (GST_VIDEO_OVERLAY (sink), allocation.x, allocation.y, allocation.width, allocation.height); + + return G_SOURCE_CONTINUE; +} + static void destroy_cb (GtkWidget * widget, GdkEvent * event, GstElement * pipeline) { @@ -406,6 +420,7 @@ main (gint argc, gchar * argv[]) /* Redraw needed when paused or stopped (PAUSED or READY) */ g_signal_connect (area, "draw", G_CALLBACK (draw_cb), videosink); + g_signal_connect(area, "configure-event", G_CALLBACK(resize_cb), videosink); gtk_widget_show_all (window);