diff options
| author | Po Lu | 2023-02-19 13:17:43 +0800 |
|---|---|---|
| committer | Po Lu | 2023-02-19 13:17:43 +0800 |
| commit | c8f49c9276d34741bfbe7752dd38391c0b8d782b (patch) | |
| tree | 02f627d6bcbc83900ce459570c59ec77a63152da /src/androidterm.c | |
| parent | c6809eb92780f8206423898151cc40c959921753 (diff) | |
| download | emacs-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/androidterm.c')
| -rw-r--r-- | src/androidterm.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/androidterm.c b/src/androidterm.c index 0fbee1e9867..62a8d5d12b3 100644 --- a/src/androidterm.c +++ b/src/androidterm.c | |||
| @@ -1792,12 +1792,30 @@ android_make_frame_visible_invisible (struct frame *f, bool visible) | |||
| 1792 | static void | 1792 | static void |
| 1793 | android_fullscreen_hook (struct frame *f) | 1793 | android_fullscreen_hook (struct frame *f) |
| 1794 | { | 1794 | { |
| 1795 | /* Explicitly setting fullscreen is not supported on Android. */ | 1795 | Lisp_Object wanted; |
| 1796 | 1796 | ||
| 1797 | if (!FRAME_PARENT_FRAME (f)) | 1797 | if (!FRAME_PARENT_FRAME (f)) |
| 1798 | store_frame_param (f, Qfullscreen, Qmaximized); | 1798 | { |
| 1799 | /* Explicitly setting fullscreen is not supported on older | ||
| 1800 | Android versions. */ | ||
| 1801 | |||
| 1802 | wanted = (f->want_fullscreen == FULLSCREEN_BOTH | ||
| 1803 | ? Qfullscreen : Qmaximized); | ||
| 1804 | |||
| 1805 | if (android_set_fullscreen (FRAME_ANDROID_WINDOW (f), | ||
| 1806 | EQ (wanted, Qfullscreen))) | ||
| 1807 | store_frame_param (f, Qfullscreen, Qmaximized); | ||
| 1808 | else | ||
| 1809 | store_frame_param (f, Qfullscreen, wanted); | ||
| 1810 | } | ||
| 1799 | else | 1811 | else |
| 1800 | store_frame_param (f, Qfullscreen, Qnil); | 1812 | { |
| 1813 | store_frame_param (f, Qfullscreen, Qnil); | ||
| 1814 | |||
| 1815 | /* If this is a child frame, don't keep it fullscreen | ||
| 1816 | anymore. */ | ||
| 1817 | android_set_fullscreen (FRAME_ANDROID_WINDOW (f), false); | ||
| 1818 | } | ||
| 1801 | } | 1819 | } |
| 1802 | 1820 | ||
| 1803 | void | 1821 | void |