aboutsummaryrefslogtreecommitdiffstats
path: root/src/android.c
diff options
context:
space:
mode:
authorPo Lu2025-12-23 10:39:45 +0800
committerPo Lu2025-12-23 10:39:45 +0800
commitb0140bcd44326632538dc377dd336b82a1df4dd9 (patch)
treedab1a81e3369797347d317b9fd11b033fe5e3aba /src/android.c
parent22070c6f2f2cf31861642295ec215a177741c361 (diff)
downloademacs-b0140bcd44326632538dc377dd336b82a1df4dd9.tar.gz
emacs-b0140bcd44326632538dc377dd336b82a1df4dd9.zip
Implement set_window_size_and_position_hook on Android
* java/org/gnu/emacs/EmacsWindow.java (moveResizeWindow): New method, which alters all of the bounding box of a window at once. * src/android.c (android_init_emacs_window): Load method `move_resize_window'. (android_move_resize_window): Invoke this method, rather than a sequence of operations that will produce two ConfigureNotify events. * src/androidterm.c (android_set_window_size_and_position_1) (android_set_window_size_and_position): New functions; ported from X. (android_create_terminal): Register the same.
Diffstat (limited to 'src/android.c')
-rw-r--r--src/android.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/android.c b/src/android.c
index 5f2f2e35239..b87430bdd74 100644
--- a/src/android.c
+++ b/src/android.c
@@ -102,6 +102,7 @@ struct android_emacs_window
102 jmethodID unmap_window; 102 jmethodID unmap_window;
103 jmethodID resize_window; 103 jmethodID resize_window;
104 jmethodID move_window; 104 jmethodID move_window;
105 jmethodID move_resize_window;
105 jmethodID make_input_focus; 106 jmethodID make_input_focus;
106 jmethodID raise; 107 jmethodID raise;
107 jmethodID lower; 108 jmethodID lower;
@@ -1965,6 +1966,7 @@ android_init_emacs_window (void)
1965 FIND_METHOD (unmap_window, "unmapWindow", "()V"); 1966 FIND_METHOD (unmap_window, "unmapWindow", "()V");
1966 FIND_METHOD (resize_window, "resizeWindow", "(II)V"); 1967 FIND_METHOD (resize_window, "resizeWindow", "(II)V");
1967 FIND_METHOD (move_window, "moveWindow", "(II)V"); 1968 FIND_METHOD (move_window, "moveWindow", "(II)V");
1969 FIND_METHOD (move_resize_window, "moveResizeWindow", "(IIII)V");
1968 FIND_METHOD (make_input_focus, "makeInputFocus", "(J)V"); 1970 FIND_METHOD (make_input_focus, "makeInputFocus", "(J)V");
1969 FIND_METHOD (raise, "raise", "()V"); 1971 FIND_METHOD (raise, "raise", "()V");
1970 FIND_METHOD (lower, "lower", "()V"); 1972 FIND_METHOD (lower, "lower", "()V");
@@ -5331,11 +5333,23 @@ android_get_geometry (android_window handle,
5331} 5333}
5332 5334
5333void 5335void
5334android_move_resize_window (android_window window, int x, int y, 5336android_move_resize_window (android_window handle, int x, int y,
5335 unsigned int width, unsigned int height) 5337 unsigned int width, unsigned int height)
5336{ 5338{
5337 android_move_window (window, x, y); 5339 jobject window;
5338 android_resize_window (window, width, height); 5340 jmethodID move_resize_window;
5341
5342 window = android_resolve_handle (handle);
5343 move_resize_window = window_class.move_resize_window;
5344
5345 (*android_java_env)->CallNonvirtualVoidMethod (android_java_env,
5346 window,
5347 window_class.class,
5348 move_resize_window,
5349 (jint) x, (jint) y,
5350 (jint) width,
5351 (jint) height);
5352 android_exception_check ();
5339} 5353}
5340 5354
5341void 5355void