summaryrefslogtreecommitdiff
path: root/gtk/gtkapplication.c
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2011-12-17 01:00:38 -0500
committerRyan Lortie <desrt@desrt.ca>2011-12-19 12:51:12 -0500
commit363c2d684c3810e5995b1ce44e8bdc0751d9de7b (patch)
tree249a6b499fa4c32b7df1ccbaca543d07bc515c3d /gtk/gtkapplication.c
parent76d671d6a2ba44bece238b580728923374393c78 (diff)
downloadgtk+-363c2d684c3810e5995b1ce44e8bdc0751d9de7b.tar.gz
GtkApplication: lock gdk on incoming messages
When we have incoming activations or action invocations we should acquire the GDK lock, just in case the program in question is using gdk threads. https://bugzilla.gnome.org/show_bug.cgi?id=665737
Diffstat (limited to 'gtk/gtkapplication.c')
-rw-r--r--gtk/gtkapplication.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c
index 1b5f2a665c..307ee6f84b 100644
--- a/gtk/gtkapplication.c
+++ b/gtk/gtkapplication.c
@@ -322,6 +322,8 @@ gtk_application_before_emit (GApplication *application,
const gchar *key;
GVariant *value;
+ gdk_threads_enter ();
+
g_variant_iter_init (&iter, platform_data);
while (g_variant_iter_loop (&iter, "{&sv}", &key, &value))
{
@@ -345,6 +347,8 @@ gtk_application_after_emit (GApplication *application,
GVariant *platform_data)
{
gdk_notify_startup_complete ();
+
+ gdk_threads_leave ();
}
static void