fix reference counting for GtkWidgets created from java

GtkWidgets extend GInitiallyUnowned and are automatically freed when
removing from parent widget. We need to add an extra reference, to make
sure the object keeps alive as long as the java widget has a reference
to it
This commit is contained in:
Julian Winkler
2023-08-22 13:49:09 +02:00
parent faf4a3281e
commit 36b6132324
12 changed files with 36 additions and 11 deletions

View File

@@ -85,7 +85,7 @@ static void on_resize(GtkWidget* self, gint width, gint height, struct jni_callb
JNIEXPORT jlong JNICALL Java_android_view_SurfaceView_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *wrapper = g_object_ref(wrapper_widget_new());
GtkWidget *dummy = surface_view_widget_new();
gtk_widget_set_name(dummy, "dummy widget for SurfaceView");
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), dummy);