diff options
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.c | 16 |
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 (); } |