aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c')
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
index 1cb43349536..94e98bf965a 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
@@ -315,10 +315,12 @@ focus_in_cb (GtkWidget *widget __attribute((unused)),
GdkEventFocus *event __attribute((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postFocusEventID,
AWT_FOCUS_GAINED,
JNI_FALSE);
+ gdk_threads_enter ();
return FALSE;
}
@@ -327,21 +329,27 @@ focus_out_cb (GtkWidget *widget __attribute((unused)),
GdkEventFocus *event __attribute((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postFocusEventID,
AWT_FOCUS_LOST,
JNI_FALSE);
+ gdk_threads_enter ();
return FALSE;
}
static void
block_expose_events_cb (GtkWidget *widget, jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
beginNativeRepaintID);
+ gdk_threads_enter ();
gdk_window_process_updates (widget->window, TRUE);
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
endNativeRepaintID);
+ gdk_threads_enter ();
}