[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