rpms/empathy/devel empathy-video-widget.patch, NONE, 1.1 empathy.spec, 1.76, 1.77

Brian Pepple bpepple at fedoraproject.org
Mon Sep 14 23:45:57 UTC 2009


Author: bpepple

Update of /cvs/pkgs/rpms/empathy/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8529

Modified Files:
	empathy.spec 
Added Files:
	empathy-video-widget.patch 
Log Message:
* Mon Sep 14 2009 Brian Pepple <bpepple at fedoraproject.org> - 2.27.92-2
- Back-port patch to prevent video widget from crashing.


empathy-video-widget.patch:
 empathy-video-widget.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

--- NEW FILE empathy-video-widget.patch ---
>From ddcb7848002b70bc8950d45a9079582a8787c394 Mon Sep 17 00:00:00 2001
From: Danielle Madeley <danielle.madeley at collabora.co.uk>
Date: Mon, 14 Sep 2009 11:33:06 +1000
Subject: [PATCH] [EmpathyVideoWidget] fix X crash when using Empathy with GTK+ c-s-w

In client-side-windows enabled GTK+, a call to GDK_WINDOW_XID() implicitly calls
gdk_window_ensure_native() so that a native X11 window exists serverside to
have an XID for.

Calling gdk_window_ensure_native() from a thread is not awesome and causes
Empathy to abort with one of several X errors. The fix is to call
GDK_WINDOW_XID() as soon as the widget is realized, before the XID is requested
from a thread (it would be neater to call gdk_window_ensure_native() here,
but that would force us to require GTK+ 2.18, which we don't want to do).

Fixes gnome bug #594890
---
 libempathy-gtk/empathy-video-widget.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/libempathy-gtk/empathy-video-widget.c b/libempathy-gtk/empathy-video-widget.c
index 0f62496..915aa33 100644
--- a/libempathy-gtk/empathy-video-widget.c
+++ b/libempathy-gtk/empathy-video-widget.c
@@ -100,12 +100,25 @@ empathy_video_widget_init (EmpathyVideoWidget *obj)
 }
 
 static void
+empathy_video_widget_realized (GtkWidget *widget, gpointer user_data)
+{
+  /* requesting the XID forces the GdkWindow to be native in GTK+ 2.18
+   * onwards, requesting the native window in a thread causes a BadWindowID,
+   * so we need to request it now. We could call gdk_window_ensure_native(),
+   * but that would mean we require GTK+ 2.18, so instead we call this */
+  GDK_WINDOW_XID (gtk_widget_get_window (GTK_WIDGET (widget)));
+}
+
+static void
 empathy_video_widget_constructed (GObject *object)
 {
   EmpathyVideoWidgetPriv *priv = GET_PRIV (object);
   GstElement *colorspace, *videoscale, *sink;
   GstPad *pad;
 
+  g_signal_connect (object, "realize",
+      G_CALLBACK (empathy_video_widget_realized), NULL);
+
   priv->videosink = gst_bin_new (NULL);
 
   gst_object_ref (priv->videosink);
-- 
1.6.4.2



Index: empathy.spec
===================================================================
RCS file: /cvs/pkgs/rpms/empathy/devel/empathy.spec,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -p -r1.76 -r1.77
--- empathy.spec	8 Sep 2009 17:13:28 -0000	1.76
+++ empathy.spec	14 Sep 2009 23:45:54 -0000	1.77
@@ -15,7 +15,7 @@
 
 Name:		empathy
 Version:	2.27.92
-Release:	1%{?dist}
+Release:	2%{?dist}
 Summary:	Instant Messaging Client for GNOME
 
 Group:		Applications/Communications
@@ -33,6 +33,9 @@ Source1:	%{name}-README.ConnectionManage
 Patch1:		%{name}-broken-pkgconfig.patch
 # http://bugzilla.gnome.org/show_bug.cgi?id=592853
 Patch3:		presence-icons.patch
+# Backported patch to fix crash with video widget.
+# http://bugzilla.gnome.org/show_bug.cgi?id=594890
+Patch4:		%{name}-video-widget.patch
 Patch5:		%{name}-broken-nm.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -136,6 +139,7 @@ bindings to the libempathy and libempath
 %setup -q
 %patch1 -p1 -b .pkgconfig
 %patch3 -p1 -b .presence-icons
+%patch4 -p1 -b .video
 %patch5 -p1 -b .nm
 
 # force these to be regenerated
@@ -245,6 +249,9 @@ fi
 %{python_sitearch}/empathy*.so
 
 %changelog
+* Mon Sep 14 2009 Brian Pepple <bpepple at fedoraproject.org> - 2.27.92-2
+- Back-port patch to prevent video widget from crashing.
+
 * Tue Sep  8 2009 Brian Pepple <bpepple at fedoraproject.org> - 2.27.92-1
 - Update to 2.27.92.
 - Drop desktop category patch.  Fixed upstream.




More information about the scm-commits mailing list