summaryrefslogtreecommitdiff
path: root/capplets
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2010-03-10 12:18:52 +0000
committerBastien Nocera <hadess@hadess.net>2010-03-10 12:24:25 +0000
commite34e6b4eebbb957107e88334faef2ed8a02d5eea (patch)
treece227adbcdccdb8bb03c7b4d170d9eea7e36edc6 /capplets
parentde51788c8dc7d86992dc3a79899e465479a94e0f (diff)
downloadgnome-control-center-e34e6b4eebbb957107e88334faef2ed8a02d5eea.tar.gz
Calls gdk_threads_enter/leave without gdk_threads_init
Fix GTK+ multi-threading. https://bugzilla.gnome.org/show_bug.cgi?id=610003
Diffstat (limited to 'capplets')
-rw-r--r--capplets/appearance/appearance-main.c3
-rw-r--r--capplets/appearance/theme-installer.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/capplets/appearance/appearance-main.c b/capplets/appearance/appearance-main.c
index e02a50ae9..98055b435 100644
--- a/capplets/appearance/appearance-main.c
+++ b/capplets/appearance/appearance-main.c
@@ -38,6 +38,8 @@ init_appearance_data (int *argc, char ***argv, GOptionContext *context)
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 ();
@@ -207,6 +209,7 @@ main (int argc, char **argv)
/* start the mainloop */
gtk_main ();
+ gdk_threads_leave ();
/* free stuff */
g_free (data);
diff --git a/capplets/appearance/theme-installer.c b/capplets/appearance/theme-installer.c
index 6a90c162f..d9df44382 100644
--- a/capplets/appearance/theme-installer.c
+++ b/capplets/appearance/theme-installer.c
@@ -613,6 +613,7 @@ static void
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 @@ transfer_done_cb (GtkWidget *dialog,
g_free (tdata->path);
g_free (tdata);
+
+ gdk_threads_leave ();
}
void