diff --git a/0001-cally-Use-a-weak-pointer-to-hold-the-key-focus-in-Ca.patch b/0001-cally-Use-a-weak-pointer-to-hold-the-key-focus-in-Ca.patch new file mode 100644 index 0000000..0e7b6cd --- /dev/null +++ b/0001-cally-Use-a-weak-pointer-to-hold-the-key-focus-in-Ca.patch @@ -0,0 +1,53 @@ +From 19391a9626b087bd4df452e8699d53caa54c350f Mon Sep 17 00:00:00 2001 +From: Emmanuele Bassi +Date: Mon, 6 May 2013 15:46:25 -0700 +Subject: [PATCH] cally: Use a weak pointer to hold the key focus in CallyStage + +We want to avoid the pointer getting stale, and causing crashes. + +https://bugzilla.gnome.org/show_bug.cgi?id=692706 +--- + clutter/cally/cally-stage.c | 20 ++++++++++++++++++-- + 1 file changed, 18 insertions(+), 2 deletions(-) + +diff --git a/clutter/cally/cally-stage.c b/clutter/cally/cally-stage.c +index 2b1cfd1..c95ccb0 100644 +--- a/clutter/cally/cally-stage.c ++++ b/clutter/cally/cally-stage.c +@@ -139,7 +139,11 @@ cally_stage_notify_key_focus_cb (ClutterStage *stage, + AtkObject *old = NULL; + + if (self->priv->key_focus != NULL) +- old = clutter_actor_get_accessible (self->priv->key_focus); ++ { ++ g_object_remove_weak_pointer (G_OBJECT (self->priv->key_focus), ++ (gpointer *) &self->priv->key_focus); ++ old = clutter_actor_get_accessible (self->priv->key_focus); ++ } + else + old = clutter_actor_get_accessible (CLUTTER_ACTOR (stage)); + +@@ -154,7 +158,19 @@ cally_stage_notify_key_focus_cb (ClutterStage *stage, + self->priv->key_focus = key_focus; + + if (key_focus != NULL) +- new = clutter_actor_get_accessible (key_focus); ++ { ++ /* ensure that if the key focus goes away, the field inside ++ * CallyStage is reset. see bug: ++ * ++ * https://bugzilla.gnome.org/show_bug.cgi?id=692706 ++ * ++ * we remove the weak pointer above. ++ */ ++ g_object_add_weak_pointer (G_OBJECT (self->priv->key_focus), ++ (gpointer *) &self->priv->key_focus); ++ ++ new = clutter_actor_get_accessible (key_focus); ++ } + else + new = clutter_actor_get_accessible (CLUTTER_ACTOR (stage)); + +-- +1.8.1.4 + diff --git a/clutter.spec b/clutter.spec index 299882d..b2469e7 100644 --- a/clutter.spec +++ b/clutter.spec @@ -4,13 +4,15 @@ Name: clutter Version: 1.14.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Source software library for creating rich graphical user interfaces Group: Development/Libraries License: LGPLv2+ URL: http://www.clutter-project.org/ Source0: http://download.gnome.org/sources/clutter/1.14/clutter-%{version}.tar.xz +# https://bugzilla.gnome.org/show_bug.cgi?id=692706 +Patch0: 0001-cally-Use-a-weak-pointer-to-hold-the-key-focus-in-Ca.patch BuildRequires: glib2-devel mesa-libGL-devel pkgconfig pango-devel BuildRequires: cairo-gobject-devel gdk-pixbuf2-devel atk-devel @@ -74,6 +76,7 @@ This package contains documentation for clutter. %prep %setup -q +%patch0 -p1 -b .cally_crash %build (if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi; @@ -122,6 +125,9 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';' %{_datadir}/gtk-doc/html/cally %changelog +* Fri May 17 2013 Kalev Lember - 1.14.4-2 +- Backport an upstream patch for frequent gnome-shell crashes (#827158) + * Wed May 15 2013 Peter Robinson 1.14.4-1 - Update to 1.14.4