diff --git a/src/api-impl-jni/android_view_Window.c b/src/api-impl-jni/android_view_Window.c index e0254c9c..7b633a65 100644 --- a/src/api-impl-jni/android_view_Window.c +++ b/src/api-impl-jni/android_view_Window.c @@ -7,7 +7,11 @@ JNIEXPORT void JNICALL Java_android_view_Window_set_1widget_1as_1root(JNIEnv *env, jobject this, jlong window, jlong widget) { - gtk_window_set_child(GTK_WINDOW(_PTR(window)), gtk_widget_get_parent(GTK_WIDGET(_PTR(widget)))); + GtkWindow *gtk_window = GTK_WINDOW(_PTR(window)); + GtkWidget *gtk_widget = gtk_widget_get_parent(GTK_WIDGET(_PTR(widget))); + if (gtk_widget != gtk_window_get_child(gtk_window)) { + gtk_window_set_child(gtk_window, gtk_widget); + } } // FIXME put this in a header file diff --git a/src/api-impl/android/view/Window.java b/src/api-impl/android/view/Window.java index 240f6599..83a3b546 100644 --- a/src/api-impl/android/view/Window.java +++ b/src/api-impl/android/view/Window.java @@ -41,11 +41,9 @@ public class Window { } public void setContentView(View view) { - if (view != contentView) { - contentView = view; - view.onAttachedToWindow(); - set_widget_as_root(native_window, view.widget); - } + contentView = view; + view.onAttachedToWindow(); + set_widget_as_root(native_window, view.widget); } public View getDecorView() {