From fc0091a989bdb9f02854c5c0789d613f1b9096fb Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Sun, 3 Nov 2024 08:26:11 +0100 Subject: [PATCH] use Activity title as window title --- src/api-impl-jni/android_view_Window.c | 8 ++++++++ src/api-impl-jni/generated_headers/android_view_Window.h | 8 ++++++++ src/api-impl/android/app/Activity.java | 1 + src/api-impl/android/view/Window.java | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/src/api-impl-jni/android_view_Window.c b/src/api-impl-jni/android_view_Window.c index 7b633a65..dcd7c0b6 100644 --- a/src/api-impl-jni/android_view_Window.c +++ b/src/api-impl-jni/android_view_Window.c @@ -14,6 +14,14 @@ JNIEXPORT void JNICALL Java_android_view_Window_set_1widget_1as_1root(JNIEnv *en } } +JNIEXPORT void JNICALL Java_android_view_Window_set_1title(JNIEnv *env, jobject this, jlong window, jstring title_jstr) +{ + GtkWindow *gtk_window = GTK_WINDOW(_PTR(window)); + const char *title = (*env)->GetStringUTFChars(env, title_jstr, NULL); + gtk_window_set_title(gtk_window, title); + (*env)->ReleaseStringUTFChars(env, title_jstr, title); +} + // FIXME put this in a header file struct input_queue { int fd; diff --git a/src/api-impl-jni/generated_headers/android_view_Window.h b/src/api-impl-jni/generated_headers/android_view_Window.h index cc1ffd89..a33e080d 100644 --- a/src/api-impl-jni/generated_headers/android_view_Window.h +++ b/src/api-impl-jni/generated_headers/android_view_Window.h @@ -19,6 +19,14 @@ extern "C" { JNIEXPORT void JNICALL Java_android_view_Window_set_1widget_1as_1root (JNIEnv *, jobject, jlong, jlong); +/* + * Class: android_view_Window + * Method: set_title + * Signature: (JLjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_android_view_Window_set_1title + (JNIEnv *, jobject, jlong, jstring); + /* * Class: android_view_Window * Method: take_input_queue diff --git a/src/api-impl/android/app/Activity.java b/src/api-impl/android/app/Activity.java index e00fd2db..14ca6ae5 100644 --- a/src/api-impl/android/app/Activity.java +++ b/src/api-impl/android/app/Activity.java @@ -168,6 +168,7 @@ public class Activity extends ContextThemeWrapper implements Window.Callback { System.out.println("- onStart - yay!"); if (window.contentView != null) window.setContentView(window.contentView); + window.setTitle(title); for (Fragment fragment : fragments) { fragment.onStart(); diff --git a/src/api-impl/android/view/Window.java b/src/api-impl/android/view/Window.java index bfc45087..577ec054 100644 --- a/src/api-impl/android/view/Window.java +++ b/src/api-impl/android/view/Window.java @@ -68,6 +68,7 @@ public class Window { } private native void set_widget_as_root(long native_window, long widget); + private native void set_title(long native_window, String title); public native void take_input_queue(long native_window, InputQueue.Callback callback, InputQueue queue); @@ -133,4 +134,8 @@ public class Window { public boolean hasFeature(int featureId) { return false; } + + public void setTitle(CharSequence title) { + set_title(native_window, title != null ? title.toString() : context.getPackageName()); + } }