aboutsummaryrefslogtreecommitdiffstats
path: root/src/android.c
diff options
context:
space:
mode:
authorPo Lu2023-02-19 13:17:43 +0800
committerPo Lu2023-02-19 13:17:43 +0800
commitc8f49c9276d34741bfbe7752dd38391c0b8d782b (patch)
tree02f627d6bcbc83900ce459570c59ec77a63152da /src/android.c
parentc6809eb92780f8206423898151cc40c959921753 (diff)
downloademacs-c8f49c9276d34741bfbe7752dd38391c0b8d782b.tar.gz
emacs-c8f49c9276d34741bfbe7752dd38391c0b8d782b.zip
Implement `fullscreen' on Android 4.0 and later
* doc/emacs/android.texi (Android Windowing): Document what new frame parameters are now supported. * java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): New field `isFullscreen'. (detachWindow, attachWindow): Sync fullscreen state. (onWindowFocusChanged): Add more logging. (onResume): Restore previous fullscreen state. (syncFullscreen): New function. * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) (setFullscreen): New function. * src/android.c (struct android_emacs_window): Add new method. (android_init_emacs_window): Look up new method. (android_set_fullscreen): New function. * src/androidgui.h: * src/androidterm.c (android_fullscreen_hook): Implement accordingly.
Diffstat (limited to 'src/android.c')
-rw-r--r--src/android.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/android.c b/src/android.c
index d21aaabc1ac..fc5e6d278ed 100644
--- a/src/android.c
+++ b/src/android.c
@@ -136,6 +136,7 @@ struct android_emacs_window
136 jmethodID swap_buffers; 136 jmethodID swap_buffers;
137 jmethodID toggle_on_screen_keyboard; 137 jmethodID toggle_on_screen_keyboard;
138 jmethodID lookup_string; 138 jmethodID lookup_string;
139 jmethodID set_fullscreen;
139}; 140};
140 141
141/* The API level of the current device. */ 142/* The API level of the current device. */
@@ -1920,6 +1921,7 @@ android_init_emacs_window (void)
1920 FIND_METHOD (toggle_on_screen_keyboard, 1921 FIND_METHOD (toggle_on_screen_keyboard,
1921 "toggleOnScreenKeyboard", "(Z)V"); 1922 "toggleOnScreenKeyboard", "(Z)V");
1922 FIND_METHOD (lookup_string, "lookupString", "(I)Ljava/lang/String;"); 1923 FIND_METHOD (lookup_string, "lookupString", "(I)Ljava/lang/String;");
1924 FIND_METHOD (set_fullscreen, "setFullscreen", "(Z)V");
1923#undef FIND_METHOD 1925#undef FIND_METHOD
1924} 1926}
1925 1927
@@ -5475,6 +5477,36 @@ android_reset_ic (android_window window, enum android_ic_mode mode)
5475 5477
5476 5478
5477 5479
5480/* Window decoration management functions. */
5481
5482/* Make the specified WINDOW fullscreen, i.e. obscure all of the
5483 system navigation and status bars. If not FULLSCREEN, make it
5484 maximized instead.
5485
5486 Value is 1 if the system does not support this, else 0. */
5487
5488int
5489android_set_fullscreen (android_window window, bool fullscreen)
5490{
5491 jobject object;
5492
5493 /* Android 4.0 and earlier don't support fullscreen windows. */
5494
5495 if (android_api_level < 16)
5496 return 1;
5497
5498 object = android_resolve_handle (window, ANDROID_HANDLE_WINDOW);
5499
5500 (*android_java_env)->CallVoidMethod (android_java_env,
5501 object,
5502 window_class.set_fullscreen,
5503 (jboolean) fullscreen);
5504 android_exception_check ();
5505 return 0;
5506}
5507
5508
5509
5478#else /* ANDROID_STUBIFY */ 5510#else /* ANDROID_STUBIFY */
5479 5511
5480/* X emulation functions for Android. */ 5512/* X emulation functions for Android. */