Update Android port

* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Don't
set the style here.
* java/res/values-v11/style.xml:
* java/res/values-v14/style.xml:
* java/res/values-v29/style.xml:
* java/res/values/style.xml: Define styles for the emacsclient
wrapper.
* src/keyboard.c (read_key_sequence): Don't disable text
conversion if use_mouse_menu or if a menu bar prefix key is
being displayed.
This commit is contained in:
Po Lu 2023-03-05 15:55:24 +08:00
parent 0760d5cc98
commit 26b3b8433d
6 changed files with 26 additions and 10 deletions

View file

@ -380,11 +380,6 @@ else if (apiLevel >= Build.VERSION_CODES.DONUT)
return;
}
/* Set an appropriate theme. */
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
setTheme (android.R.style.Theme_DeviceDefault);
/* Now see if the action specified is supported by Emacs. */
if (action.equals ("android.intent.action.VIEW")

View file

@ -20,4 +20,5 @@
<resources>
<!-- Style used for popup menus and relatives on Android 3.x. -->
<style name="EmacsStyle" parent="@android:style/Theme.Holo.NoActionBar"/>
<style name="EmacsStyleOpen" parent="@android:style/Theme.Holo"/>
</resources>

View file

@ -21,4 +21,5 @@
<!-- Style used for popup menus and relatives between Android 4.0
and Android 10. -->
<style name="EmacsStyle" parent="@android:style/Theme.DeviceDefault.NoActionBar"/>
<style name="EmacsStyleOpen" parent="@android:style/Theme.DeviceDefault"/>
</resources>

View file

@ -27,4 +27,6 @@
<!-- Required to make sure the status bar text remains legible. -->
<item name="android:statusBarColor">@android:color/black</item>
</style>
<style name="EmacsStyleOpen"
parent="@android:style/Theme.DeviceDefault.DayNight"/>
</resources>

View file

@ -22,4 +22,5 @@
2.3. Styles used for newer Android versions are defined in
the res/values- directories for their respective API levels. -->
<style name="EmacsStyle" parent="@android:style/Theme.NoTitleBar"/>
<style name="EmacsStyleOpen" parent="@android:style/Theme"/>
</resources>

View file

@ -10215,14 +10215,30 @@ read_key_sequence (Lisp_Object *keybuf, Lisp_Object prompt,
effect, turn it off after the first character read. This
makes input methods send actual key events instead.
Make sure only to do this once. */
Make sure only to do this once. Also, disabling text
conversion seems to interact badly with menus, so don't
disable text conversion if a menu was displayed. */
if (!disabled_conversion && t)
if (!disabled_conversion && t && !used_mouse_menu)
{
disable_text_conversion ();
record_unwind_protect_void (resume_text_conversion);
int i;
disabled_conversion = true;
/* used_mouse_menu isn't set if a menu bar prefix key has
just been stored. It appears necessary to look for the
prefix key itself. */
for (i = 0; i < t; ++i)
{
if (EQ (keybuf[i], Qmenu_bar))
break;
}
if (i == t)
{
disable_text_conversion ();
record_unwind_protect_void (resume_text_conversion);
disabled_conversion = true;
}
}
#endif