From 6ef1e523ccf6f445f0468721019fbad5d321a0ee Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Wed, 8 Nov 2023 18:11:52 +0100 Subject: [PATCH] View: relayout on visibility changes --- src/api-impl-jni/generated_headers/android_view_View.h | 8 ++++---- src/api-impl-jni/views/android_view_View.c | 4 ++-- src/api-impl/android/view/View.java | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/api-impl-jni/generated_headers/android_view_View.h b/src/api-impl-jni/generated_headers/android_view_View.h index c2e5888d..174ba5ca 100644 --- a/src/api-impl-jni/generated_headers/android_view_View.h +++ b/src/api-impl-jni/generated_headers/android_view_View.h @@ -297,11 +297,11 @@ JNIEXPORT void JNICALL Java_android_view_View_setBackgroundColor /* * Class: android_view_View - * Method: setVisibility - * Signature: (I)V + * Method: native_setVisibility + * Signature: (JI)V */ -JNIEXPORT void JNICALL Java_android_view_View_setVisibility - (JNIEnv *, jobject, jint); +JNIEXPORT void JNICALL Java_android_view_View_native_1setVisibility + (JNIEnv *, jobject, jlong, jint); #ifdef __cplusplus } diff --git a/src/api-impl-jni/views/android_view_View.c b/src/api-impl-jni/views/android_view_View.c index 3a3b53c0..afbc360f 100644 --- a/src/api-impl-jni/views/android_view_View.c +++ b/src/api-impl-jni/views/android_view_View.c @@ -239,8 +239,8 @@ JNIEXPORT void JNICALL Java_android_view_View_native_1setLayoutParams(JNIEnv *en android_layout_set_params(ATL_ANDROID_LAYOUT(layout_manager), width, height); } -JNIEXPORT void JNICALL Java_android_view_View_setVisibility(JNIEnv *env, jobject this, jint visibility) { - GtkWidget *widget = gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(this, "widget")))); +JNIEXPORT void JNICALL Java_android_view_View_native_1setVisibility(JNIEnv *env, jobject this, jlong widget_ptr, jint visibility) { + GtkWidget *widget = gtk_widget_get_parent(GTK_WIDGET(_PTR(widget_ptr))); switch (visibility) { case android_view_View_VISIBLE: diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index 7903beb2..31bbc640 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -984,7 +984,11 @@ public class View extends Object { private static native void nativeInvalidate(long widget); public native void setBackgroundColor(int color); - public native void setVisibility(int visibility); + public native void native_setVisibility(long widget, int visibility); + public void setVisibility(int visibility) { + native_setVisibility(widget, visibility); + requestLayout(); + } public void setPadding(int left, int top, int right, int bottom) {} public void setBackgroundResource(int resid) { // Slog.w(TAG, "*** setBackgroundResource: " + getString(resid));