From cfdfe286ba2fc6ca951952ada3304ca1564b63d2 Mon Sep 17 00:00:00 2001
From: Philip Van Hoof <philip@codeminded.be>
Date: Tue, 12 Oct 2010 15:42:38 +0200
Subject: [PATCH] Push and pop the thread-default context for the current thread

---
 src/corelib/kernel/qeventdispatcher_glib.cpp |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp
index 8390275..6fa2707 100644
--- a/src/corelib/kernel/qeventdispatcher_glib.cpp
+++ b/src/corelib/kernel/qeventdispatcher_glib.cpp
@@ -311,6 +311,10 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context)
         }
     }
 
+#if GLIB_CHECK_VERSION (2, 22, 0)
+    g_main_context_push_thread_default (mainContext);
+#endif
+
     // setup post event source
     postEventSource = reinterpret_cast<GPostEventSource *>(g_source_new(&postEventSourceFuncs,
                                                                         sizeof(GPostEventSource)));
@@ -389,6 +393,9 @@ QEventDispatcherGlib::~QEventDispatcherGlib()
     d->postEventSource = 0;
 
     Q_ASSERT(d->mainContext != 0);
+#if GLIB_CHECK_VERSION (2, 22, 0)
+    g_main_context_pop_thread_default (d->mainContext);
+#endif
     g_main_context_unref(d->mainContext);
     d->mainContext = 0;
 }
-- 
1.7.1

