summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsWindow.java
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-02-19 13:17:43 +0800
committerPo Lu <luangruo@yahoo.com>2023-02-19 13:17:43 +0800
commitc8f49c9276d34741bfbe7752dd38391c0b8d782b (patch)
tree02f627d6bcbc83900ce459570c59ec77a63152da /java/org/gnu/emacs/EmacsWindow.java
parentc6809eb92780f8206423898151cc40c959921753 (diff)
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 'java/org/gnu/emacs/EmacsWindow.java')
-rw-r--r--java/org/gnu/emacs/EmacsWindow.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/java/org/gnu/emacs/EmacsWindow.java b/java/org/gnu/emacs/EmacsWindow.java
index 0eca35cec61..90fc4c44198 100644
--- a/java/org/gnu/emacs/EmacsWindow.java
+++ b/java/org/gnu/emacs/EmacsWindow.java
@@ -128,6 +128,9 @@ public class EmacsWindow extends EmacsHandleObject
events. */
public LinkedHashMap<Integer, String> eventStrings;
+ /* Whether or not this window is fullscreen. */
+ public boolean fullscreen;
+
public
EmacsWindow (short handle, final EmacsWindow parent, int x, int y,
int width, int height, boolean overrideRedirect)
@@ -1179,4 +1182,27 @@ public class EmacsWindow extends EmacsHandleObject
return any;
}
+
+ public void
+ setFullscreen (final boolean isFullscreen)
+ {
+ EmacsService.SERVICE.runOnUiThread (new Runnable () {
+ @Override
+ public void
+ run ()
+ {
+ EmacsActivity activity;
+ Object tem;
+
+ fullscreen = isFullscreen;
+ tem = getAttachedConsumer ();
+
+ if (tem != null)
+ {
+ activity = (EmacsActivity) getAttachedConsumer ();
+ activity.syncFullscreenWith (EmacsWindow.this);
+ }
+ }
+ });
+ }
};