[telepathy-stream-engine/master] Disable drawing on the expose event and double-buffer in GTK+

Olivier Crête olivier.crete at collabora.co.uk
Wed Jun 3 08:58:09 PDT 2009


---
 src/videosink.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/videosink.c b/src/videosink.c
index e5cbcf4..9c7dd09 100644
--- a/src/videosink.c
+++ b/src/videosink.c
@@ -307,6 +307,14 @@ embedded_event (GtkWidget *widget, gpointer user_data)
     gtk_widget_show (widget);
 }
 
+static gboolean
+expose_handler (GtkWidget *widget,
+    GdkEventExpose *event,
+    gpointer        user_data)
+{
+  return TRUE;
+}
+
 static GObject *
 tp_stream_engine_video_sink_constructor (GType type,
     guint n_props,
@@ -326,10 +334,14 @@ tp_stream_engine_video_sink_constructor (GType type,
 
   self->priv->plug = gtk_plug_new (0);
   gtk_widget_set_size_request (self->priv->plug, 176, 144);
+  gtk_widget_set_double_buffered (self->priv->plug, FALSE);
+  gtk_widget_set_app_paintable (self->priv->plug, TRUE);
   self->priv->delete_event_handler_id = g_signal_connect (self->priv->plug,
       "delete-event", G_CALLBACK (delete_event), self);
   self->priv->embedded_handler_id = g_signal_connect (self->priv->plug,
       "embedded", G_CALLBACK (embedded_event), NULL);
+  g_signal_connect (self->priv->plug, "expose-event",
+      G_CALLBACK (expose_handler), NULL);
 
   self->priv->window_id = gtk_plug_get_id (GTK_PLUG (self->priv->plug));
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list