diff --git a/src/api-impl-jni/generated_headers/android_widget_ImageButton.h b/src/api-impl-jni/generated_headers/android_widget_ImageButton.h index 1c6489da..eb8a4ef8 100644 --- a/src/api-impl-jni/generated_headers/android_widget_ImageButton.h +++ b/src/api-impl-jni/generated_headers/android_widget_ImageButton.h @@ -210,10 +210,10 @@ JNIEXPORT jlong JNICALL Java_android_widget_ImageButton_native_1constructor /* * Class: android_widget_ImageButton * Method: native_setPixbuf - * Signature: (J)V + * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_android_widget_ImageButton_native_1setPixbuf - (JNIEnv *, jobject, jlong); + (JNIEnv *, jobject, jlong, jlong); /* * Class: android_widget_ImageButton diff --git a/src/api-impl-jni/generated_headers/android_widget_ImageView.h b/src/api-impl-jni/generated_headers/android_widget_ImageView.h index 6c3f66ef..63ae70d6 100644 --- a/src/api-impl-jni/generated_headers/android_widget_ImageView.h +++ b/src/api-impl-jni/generated_headers/android_widget_ImageView.h @@ -210,10 +210,10 @@ JNIEXPORT jlong JNICALL Java_android_widget_ImageView_native_1constructor /* * Class: android_widget_ImageView * Method: native_setPixbuf - * Signature: (J)V + * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1setPixbuf - (JNIEnv *, jobject, jlong); + (JNIEnv *, jobject, jlong, jlong); /* * Class: android_widget_ImageView diff --git a/src/api-impl-jni/widgets/android_widget_ImageButton.c b/src/api-impl-jni/widgets/android_widget_ImageButton.c index 348b0f6c..cd9051cd 100644 --- a/src/api-impl-jni/widgets/android_widget_ImageButton.c +++ b/src/api-impl-jni/widgets/android_widget_ImageButton.c @@ -19,12 +19,10 @@ JNIEXPORT jlong JNICALL Java_android_widget_ImageButton_native_1constructor(JNIE return _INTPTR(button); } -JNIEXPORT void JNICALL Java_android_widget_ImageButton_native_1setPixbuf(JNIEnv *env, jobject this, jlong pixbuf_ptr) +JNIEXPORT void JNICALL Java_android_widget_ImageButton_native_1setPixbuf(JNIEnv *env, jobject this, jlong widget_ptr, jlong pixbuf_ptr) { - GtkButton *button = _PTR(_GET_LONG_FIELD(this, "widget")); - GtkWidget *image = gtk_button_get_child(GTK_BUTTON(button)); - GdkPixbuf *pixbuf = _PTR(pixbuf_ptr); - gtk_picture_set_pixbuf(GTK_PICTURE(image), pixbuf); + GdkPaintable *paintable = GDK_PAINTABLE(gdk_texture_new_for_pixbuf(_PTR(pixbuf_ptr))); + Java_android_widget_ImageButton_native_1setDrawable(env, this, widget_ptr, _INTPTR(paintable)); } struct touch_callback_data { @@ -65,7 +63,7 @@ JNIEXPORT void JNICALL Java_android_widget_ImageButton_native_1setOnClickListene JNIEXPORT void JNICALL Java_android_widget_ImageButton_native_1setDrawable(JNIEnv *env, jobject this, jlong widget_ptr, jlong paintable_ptr) { - GtkButton *button = _PTR(_GET_LONG_FIELD(this, "widget")); + GtkButton *button = _PTR(widget_ptr); GtkPicture *picture = GTK_PICTURE(gtk_button_get_child(GTK_BUTTON(button))); GdkPaintable *paintable = _PTR(paintable_ptr); gtk_picture_set_paintable(picture, paintable); diff --git a/src/api-impl-jni/widgets/android_widget_ImageView.c b/src/api-impl-jni/widgets/android_widget_ImageView.c index 6c3f5085..701d89c5 100644 --- a/src/api-impl-jni/widgets/android_widget_ImageView.c +++ b/src/api-impl-jni/widgets/android_widget_ImageView.c @@ -25,11 +25,10 @@ JNIEXPORT jlong JNICALL Java_android_widget_ImageView_native_1constructor(JNIEnv return _INTPTR(image); } -JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1setPixbuf(JNIEnv *env, jobject this, jlong pixbuf_ptr) +JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1setPixbuf(JNIEnv *env, jobject this, jlong widget_ptr, jlong pixbuf_ptr) { - GtkWidget *image = _PTR(_GET_LONG_FIELD(this, "widget")); - GdkPixbuf *pixbuf = _PTR(pixbuf_ptr); - gtk_picture_set_pixbuf(GTK_PICTURE(image), pixbuf); + GdkPaintable *paintable = GDK_PAINTABLE(gdk_texture_new_for_pixbuf(_PTR(pixbuf_ptr))); + Java_android_widget_ImageView_native_1setDrawable(env, this, widget_ptr, _INTPTR(paintable)); } JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1setDrawable(JNIEnv *env, jobject this, jlong widget_ptr, jlong paintable_ptr) diff --git a/src/api-impl/android/widget/ImageButton.java b/src/api-impl/android/widget/ImageButton.java index 25e77c08..6a14e373 100644 --- a/src/api-impl/android/widget/ImageButton.java +++ b/src/api-impl/android/widget/ImageButton.java @@ -20,7 +20,7 @@ public class ImageButton extends ImageView { @Override protected native long native_constructor(Context context, AttributeSet attrs); @Override - protected native void native_setPixbuf(long pixbuf); + protected native void native_setPixbuf(long widget, long pixbuf); @Override protected native void native_setDrawable(long widget, long paintable); protected native void native_setOnClickListener(long widget, OnClickListener l); diff --git a/src/api-impl/android/widget/ImageView.java b/src/api-impl/android/widget/ImageView.java index 0287e714..d6a62147 100644 --- a/src/api-impl/android/widget/ImageView.java +++ b/src/api-impl/android/widget/ImageView.java @@ -42,7 +42,7 @@ public class ImageView extends View { return; } bitmap = BitmapFactory.decodeResource(Context.this_application.getResources(), resid); - native_setPixbuf(bitmap.pixbuf); + native_setPixbuf(widget, bitmap.pixbuf); } public void setAdjustViewBounds(boolean adjustViewBounds) {} @@ -82,7 +82,7 @@ public class ImageView extends View { public void setImageBitmap(Bitmap bitmap) { if (bitmap != null) - native_setPixbuf(bitmap.pixbuf); + native_setPixbuf(widget, bitmap.pixbuf); } /** @@ -168,7 +168,7 @@ public class ImageView extends View { @Override protected native long native_constructor(Context context, AttributeSet attrs); - protected native void native_setPixbuf(long pixbuf); + protected native void native_setPixbuf(long widget, long pixbuf); protected native void native_setDrawable(long widget, long paintable); protected native void native_setScaleType(long widget, int scale_type); }