diff --git a/src/api-impl-jni/android_view_Window.c b/src/api-impl-jni/android_view_Window.c index dcd7c0b6..96252b3a 100644 --- a/src/api-impl-jni/android_view_Window.c +++ b/src/api-impl-jni/android_view_Window.c @@ -46,3 +46,10 @@ JNIEXPORT void JNICALL Java_android_view_Window_take_1input_1queue(JNIEnv *env, g_object_set_data(G_OBJECT(window), "input_queue_callback", (gpointer)_REF(callback)); g_object_set_data(G_OBJECT(window), "input_queue", (gpointer)_REF(queue)); } + +JNIEXPORT void JNICALL Java_android_view_Window_set_1layout(JNIEnv *env, jobject this, jlong window, jint width, jint height) +{ + GtkWindow *gtk_window = GTK_WINDOW(_PTR(window)); + if (width > 0 && height > 0) + gtk_window_set_default_size(gtk_window, width, height); +} 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 a33e080d..40bb02e0 100644 --- a/src/api-impl-jni/generated_headers/android_view_Window.h +++ b/src/api-impl-jni/generated_headers/android_view_Window.h @@ -35,6 +35,14 @@ JNIEXPORT void JNICALL Java_android_view_Window_set_1title JNIEXPORT void JNICALL Java_android_view_Window_take_1input_1queue (JNIEnv *, jobject, jlong, jobject, jobject); +/* + * Class: android_view_Window + * Method: set_layout + * Signature: (JII)V + */ +JNIEXPORT void JNICALL Java_android_view_Window_set_1layout + (JNIEnv *, jobject, jlong, jint, jint); + #ifdef __cplusplus } #endif diff --git a/src/api-impl/android/view/Window.java b/src/api-impl/android/view/Window.java index 2c30a658..2815d294 100644 --- a/src/api-impl/android/view/Window.java +++ b/src/api-impl/android/view/Window.java @@ -66,6 +66,7 @@ public class Window { private native void set_title(long native_window, String title); public native void take_input_queue(long native_window, InputQueue.Callback callback, InputQueue queue); + public native void set_layout(long native_window, int width, int height); public void takeInputQueue(InputQueue.Callback callback) { take_input_queue(native_window, callback, new InputQueue()); @@ -91,7 +92,9 @@ public class Window { decorView.setBackgroundDrawable(drawable); } - public void setAttributes(WindowManager.LayoutParams params) {} + public void setAttributes(WindowManager.LayoutParams params) { + set_layout(native_window, params.width, params.height); + } public void takeSurface(SurfaceHolder.Callback2 callback) {} @@ -101,7 +104,9 @@ public class Window { public void setFormat(int format) {} - public void setLayout(int dummy, int dummy2) {} + public void setLayout(int width, int height) { + set_layout(native_window, width, height); + } public WindowManager getWindowManager() { return new WindowManagerImpl();