src/solaris/native/sun/awt/swing_GTKEngine.c
Print this page
@@ -36,12 +36,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow(
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h, jint arrow_type)
{
+ fp_gdk_threads_enter();
gtk2_paint_arrow(widget_type, state, shadow_type, getStrFor(env, detail),
x, y, w, h, arrow_type, TRUE);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_box
@@ -52,12 +54,14 @@
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h,
jint synth_state, jint dir)
{
+ fp_gdk_threads_enter();
gtk2_paint_box(widget_type, state, shadow_type, getStrFor(env, detail),
x, y, w, h, synth_state, dir);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_box_gap
@@ -68,12 +72,14 @@
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h,
jint gap_side, jint gap_x, jint gap_w)
{
+ fp_gdk_threads_enter();
gtk2_paint_box_gap(widget_type, state, shadow_type, getStrFor(env, detail),
x, y, w, h, gap_side, gap_x, gap_w);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_check
@@ -83,12 +89,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1check(
JNIEnv *env, jobject this,
jint widget_type, jint synth_state, jstring detail,
jint x, jint y, jint w, jint h)
{
+ fp_gdk_threads_enter();
gtk2_paint_check(widget_type, synth_state, getStrFor(env, detail),
x, y, w, h);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_expander
@@ -98,12 +106,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1expander(
JNIEnv *env, jobject this,
jint widget_type, jint state, jstring detail,
jint x, jint y, jint w, jint h, jint expander_style)
{
+ fp_gdk_threads_enter();
gtk2_paint_expander(widget_type, state, getStrFor(env, detail),
x, y, w, h, expander_style);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_extension
@@ -113,12 +123,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1extension(
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h, jint placement)
{
+ fp_gdk_threads_enter();
gtk2_paint_extension(widget_type, state, shadow_type,
getStrFor(env, detail), x, y, w, h, placement);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_flat_box
@@ -128,12 +140,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1flat_1box(
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h, jboolean has_focus)
{
+ fp_gdk_threads_enter();
gtk2_paint_flat_box(widget_type, state, shadow_type,
getStrFor(env, detail), x, y, w, h, has_focus);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_focus
@@ -143,12 +157,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1focus(
JNIEnv *env, jobject this,
jint widget_type, jint state, jstring detail,
jint x, jint y, jint w, jint h)
{
+ fp_gdk_threads_enter();
gtk2_paint_focus(widget_type, state, getStrFor(env, detail),
x, y, w, h);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_handle
@@ -158,12 +174,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1handle(
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h, jint orientation)
{
+ fp_gdk_threads_enter();
gtk2_paint_handle(widget_type, state, shadow_type, getStrFor(env, detail),
x, y, w, h, orientation);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_hline
@@ -173,12 +191,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1hline(
JNIEnv *env, jobject this,
jint widget_type, jint state, jstring detail,
jint x, jint y, jint w, jint h)
{
+ fp_gdk_threads_enter();
gtk2_paint_hline(widget_type, state, getStrFor(env, detail),
x, y, w, h);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_option
@@ -188,12 +208,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1option(
JNIEnv *env, jobject this,
jint widget_type, jint synth_state, jstring detail,
jint x, jint y, jint w, jint h)
{
+ fp_gdk_threads_enter();
gtk2_paint_option(widget_type, synth_state, getStrFor(env, detail),
x, y, w, h);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_shadow
@@ -204,12 +226,14 @@
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h,
jint synth_state, jint dir)
{
+ fp_gdk_threads_enter();
gtk2_paint_shadow(widget_type, state, shadow_type, getStrFor(env, detail),
x, y, w, h, synth_state, dir);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_slider
@@ -219,12 +243,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1slider(
JNIEnv *env, jobject this,
jint widget_type, jint state, jint shadow_type, jstring detail,
jint x, jint y, jint w, jint h, jint orientation)
{
+ fp_gdk_threads_enter();
gtk2_paint_slider(widget_type, state, shadow_type, getStrFor(env, detail),
x, y, w, h, orientation);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_vline
@@ -234,12 +260,14 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1vline(
JNIEnv *env, jobject this,
jint widget_type, jint state, jstring detail,
jint x, jint y, jint w, jint h)
{
+ fp_gdk_threads_enter();
gtk2_paint_vline(widget_type, state, getStrFor(env, detail),
x, y, w, h);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_paint_background
@@ -248,11 +276,13 @@
JNIEXPORT void JNICALL
Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1background(
JNIEnv *env, jobject this, jint widget_type, jint state,
jint x, jint y, jint w, jint h)
{
+ fp_gdk_threads_enter();
gtk_paint_background(widget_type, state, x, y, w, h);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: nativeStartPainting
@@ -260,11 +290,13 @@
*/
JNIEXPORT void JNICALL
Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeStartPainting(
JNIEnv *env, jobject this, jint w, jint h)
{
+ fp_gdk_threads_enter();
gtk2_init_painting(w, h);
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: nativeFinishPainting
@@ -274,11 +306,13 @@
Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting(
JNIEnv *env, jobject this, jintArray dest, jint width, jint height)
{
jint transparency;
gint *buffer = (gint*) (*env)->GetPrimitiveArrayCritical(env, dest, 0);
+ fp_gdk_threads_enter();
transparency = gtk2_copy_image(buffer, width, height);
+ fp_gdk_threads_leave();
(*env)->ReleasePrimitiveArrayCritical(env, dest, buffer, 0);
return transparency;
}
/*
@@ -287,22 +321,28 @@
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1switch_1theme(
JNIEnv *env, jobject this)
{
+ fp_gdk_threads_enter();
flush_gtk_event_loop();
+ fp_gdk_threads_leave();
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: native_get_gtk_setting
* Signature: (I)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1get_1gtk_1setting(
JNIEnv *env, jobject this, jint property)
{
- return gtk2_get_setting(env, property);
+ jobject obj;
+ fp_gdk_threads_enter();
+ obj = gtk2_get_setting(env, property);
+ fp_gdk_threads_leave();
+ return obj;
}
/*
* Class: com_sun_java_swing_plaf_gtk_GTKEngine
* Method: nativeSetRangeValue
@@ -311,7 +351,9 @@
JNIEXPORT void JNICALL
Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeSetRangeValue(
JNIEnv *env, jobject this, jint widget_type,
jdouble value, jdouble min, jdouble max, jdouble visible)
{
+ fp_gdk_threads_enter();
gtk2_set_range_value(widget_type, value, min, max, visible);
+ fp_gdk_threads_leave();
}