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 fedora-extras-commits
mailing list