From 520569f7c7e0561b3bcc60371359e45c7e258616 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Thu, 13 Jul 2023 22:38:01 +0200 Subject: [PATCH] implement View.invalidate() --- src/api-impl-jni/generated_headers/android_view_View.h | 8 ++++++++ src/api-impl-jni/views/android_view_View.c | 6 ++++++ src/api-impl/android/view/View.java | 5 ++++- 3 files changed, 18 insertions(+), 1 deletion(-) 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 5515b336..0b4eeeb4 100644 --- a/src/api-impl-jni/generated_headers/android_view_View.h +++ b/src/api-impl-jni/generated_headers/android_view_View.h @@ -205,6 +205,14 @@ JNIEXPORT void JNICALL Java_android_view_View_native_1constructor JNIEXPORT void JNICALL Java_android_view_View_native_1set_1size_1request (JNIEnv *, jobject, jint, jint); +/* + * Class: android_view_View + * Method: nativeInvalidate + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_android_view_View_nativeInvalidate + (JNIEnv *, jclass, jlong); + /* * Class: android_view_View * Method: setVisibility diff --git a/src/api-impl-jni/views/android_view_View.c b/src/api-impl-jni/views/android_view_View.c index a26bbc9d..da4af4cc 100644 --- a/src/api-impl-jni/views/android_view_View.c +++ b/src/api-impl-jni/views/android_view_View.c @@ -231,3 +231,9 @@ JNIEXPORT void JNICALL Java_android_view_View_native_1constructor(JNIEnv *env, j _SET_LONG_FIELD(this, "widget", (long)area); } + +JNIEXPORT void JNICALL Java_android_view_View_nativeInvalidate(JNIEnv *env, jclass, jlong widget_ptr) { + GtkWidget *widget = GTK_WIDGET(_PTR(widget_ptr)); + + gtk_widget_queue_draw(gtk_widget_get_parent(widget)); +} diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index ab2e52eb..b93e5250 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -802,7 +802,10 @@ public class View extends Object { public void invalidate(Rect dirty) {} public void invalidate(int l, int t, int r, int b) {} - public void invalidate() {} + public void invalidate() { + nativeInvalidate(widget); + } + private static native void nativeInvalidate(long widget); public void setBackgroundColor(int color) {} public native void setVisibility(int visibility);