mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-28 16:21:07 -08:00
Improve context menus on old versions of Android
* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): New field `lastClosedMenu'. (onContextMenuClosed): Don't send event if a menu is closed twice in a row. Also, clear wasSubmenuSelected immediately. * java/org/gnu/emacs/EmacsContextMenu.java: Display submenus manually in Android 6.0 and earlier. * java/org/gnu/emacs/EmacsView.java (onCreateContextMenu) (popupMenu): Adjust accordingly.
This commit is contained in:
parent
39a7e6b79f
commit
2634765bc3
3 changed files with 79 additions and 34 deletions
|
|
@ -65,6 +65,9 @@ public class EmacsActivity extends Activity
|
|||
/* Whether or not this activity is fullscreen. */
|
||||
private boolean isFullscreen;
|
||||
|
||||
/* The last context menu to be closed. */
|
||||
private Menu lastClosedMenu;
|
||||
|
||||
static
|
||||
{
|
||||
focusedActivities = new ArrayList<EmacsActivity> ();
|
||||
|
|
@ -308,9 +311,19 @@ public class EmacsActivity extends Activity
|
|||
Log.d (TAG, "onContextMenuClosed: " + menu);
|
||||
|
||||
/* See the comment inside onMenuItemClick. */
|
||||
|
||||
if (EmacsContextMenu.wasSubmenuSelected
|
||||
&& menu.toString ().contains ("ContextMenuBuilder"))
|
||||
return;
|
||||
|| menu == lastClosedMenu)
|
||||
{
|
||||
EmacsContextMenu.wasSubmenuSelected = false;
|
||||
lastClosedMenu = menu;
|
||||
return;
|
||||
}
|
||||
|
||||
/* lastClosedMenu is set because Android apparently calls this
|
||||
function twice. */
|
||||
|
||||
lastClosedMenu = null;
|
||||
|
||||
/* Send a context menu event given that no menu item has already
|
||||
been selected. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue