[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 7b0d7501888: Work around premature dismissals of submenus under A
From: |
Po Lu |
Subject: |
master 7b0d7501888: Work around premature dismissals of submenus under Android |
Date: |
Tue, 20 Feb 2024 22:50:05 -0500 (EST) |
branch: master
commit 7b0d75018885d8d34ff7c4427a83a21a4808282c
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Work around premature dismissals of submenus under Android
* java/org/gnu/emacs/EmacsContextMenu.java (display): If between
HONEYCOMB and N, set wasSubmenuSelected.
---
java/org/gnu/emacs/EmacsContextMenu.java | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/java/org/gnu/emacs/EmacsContextMenu.java
b/java/org/gnu/emacs/EmacsContextMenu.java
index 17e6033377d..f1d70f05a25 100644
--- a/java/org/gnu/emacs/EmacsContextMenu.java
+++ b/java/org/gnu/emacs/EmacsContextMenu.java
@@ -361,8 +361,24 @@ public final class EmacsContextMenu
public Boolean
call ()
{
+ boolean rc;
+
lastMenuEventSerial = serial;
- return display1 (window, xPosition, yPosition);
+ rc = display1 (window, xPosition, yPosition);
+
+ /* Android 3.0 to Android 7.0 perform duplicate calls to
+ onContextMenuClosed after a context menu is dismissed for
+ the second or third time. Since the second call after such
+ a dismissal is otherwise liable to prematurely cancel any
+ context menu displayed immediately afterwards, ignore calls
+ received within 300 milliseconds of this menu's being
+ displayed. */
+
+ if (rc && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB
+ && Build.VERSION.SDK_INT < Build.VERSION_CODES.N)
+ wasSubmenuSelected = System.currentTimeMillis ();
+
+ return rc;
}
});
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 7b0d7501888: Work around premature dismissals of submenus under Android,
Po Lu <=