diff options
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.c | 15 |
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); |