diff --git a/control-center.spec b/control-center.spec index b76e2c4..e536bb0 100644 --- a/control-center.spec +++ b/control-center.spec @@ -24,7 +24,7 @@ Summary: Utilities to configure the GNOME desktop Name: control-center Version: 2.29.90 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 License: GPLv2+ and GFDL Group: User Interface/Desktops @@ -76,6 +76,9 @@ Patch99: default-applications.patch # update the shell common tasks to desktop files we ship Patch100: shell-common-tasks.patch +# https://bugzilla.gnome.org/show_bug.cgi?id=610003 +Patch101: threads.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) URL: http://www.gnome.org @@ -208,6 +211,7 @@ for the GNOME desktop. #%patch96 -p1 -b .gecos %patch99 -p1 -b .default-apps %patch100 -p1 -b .common-tasks +%patch101 -p1 -b .threads %patch7 -p1 -b .make-default @@ -395,6 +399,9 @@ fi %changelog +* Mon Feb 15 2010 Matthias Clasen - 2.29.90-2 +- Properly initialize threads in the appearance capplet + * Wed Feb 10 2010 Bastien Nocera 2.29.90-1 - Update to 2.29.90 diff --git a/threads.patch b/threads.patch new file mode 100644 index 0000000..a291500 --- /dev/null +++ b/threads.patch @@ -0,0 +1,38 @@ +--- gnome-control-center-2.28.1/capplets/appearance/appearance-main.c 2010-02-15 12:34:25.205013147 -0500 ++++ foo/capplets/appearance/appearance-main.c 2010-02-15 12:08:30.813030941 -0500 +@@ -39,6 +39,8 @@ + GError *err = NULL; + + g_thread_init (NULL); ++ gdk_threads_init (); ++ gdk_threads_enter (); + theme_thumbnail_factory_init (*argc, *argv); + capplet_init (context, argc, argv); + activate_settings_daemon (); +@@ -208,6 +210,7 @@ + + /* start the mainloop */ + gtk_main (); ++ gdk_threads_leave (); + + /* free stuff */ + g_free (data); +--- gnome-control-center-2.28.1/capplets/appearance/theme-installer.c 2009-08-24 06:54:41.000000000 -0400 ++++ foo/capplets/appearance/theme-installer.c 2010-02-15 12:29:59.573014558 -0500 +@@ -613,6 +613,7 @@ + transfer_done_cb (GtkWidget *dialog, + TransferData *tdata) + { ++ gdk_threads_enter (); + /* XXX: path should be on the local filesystem by now? */ + + if (dialog != NULL) { +@@ -623,6 +624,8 @@ + + g_free (tdata->path); + g_free (tdata); ++ ++ gdk_threads_leave (); + } + + void