summaryrefslogtreecommitdiffstats
path: root/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c')
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
index af14f0be8a9..cd4d7e2fe7b 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
@@ -56,6 +56,10 @@ jmethodID postItemEventID;
jmethodID postListItemEventID;
JNIEnv *gdk_env;
+#ifdef PORTABLE_NATIVE_SYNC
+JavaVM *gdk_vm;
+#endif
+
/*
* Call gtk_init. It is very important that this happen before any other
* gtk calls.
@@ -81,7 +85,16 @@ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz)
/* until we have JDK 1.2 JNI, assume we have a VM with threads that
match what GLIB was compiled for */
- g_thread_init (NULL);
+#ifdef PORTABLE_NATIVE_SYNC
+ (*env)->GetJavaVM( env, &gdk_vm );
+ g_thread_init ( &g_thread_jni_functions );
+ printf("called gthread init\n");
+#else
+ g_thread_init ( NULL );
+#endif
+
+ /* From GDK 2.0 onwards we have to explicitly call gdk_threads_init */
+ gdk_threads_init();
gtk_init (&argc, &argv);
OpenPOWER on IntegriCloud