summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsContextMenu.java
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2024-04-01 17:58:04 +0800
committerSean Whitton <spwhitton@spwhitton.name>2024-04-01 17:58:04 +0800
commit3af419ed0f0bf23320f8a7ac3479e2c50c353cde (patch)
treefa45f6aee9812f8684ca888823c89cdcc89e6ddb /java/org/gnu/emacs/EmacsContextMenu.java
parent101801ca13632ae17b486f690701b9cb36868676 (diff)
parent87be53846bfbf5a6387cb5a40105bd0fc5b48b38 (diff)
downloademacs-3af419ed0f0bf23320f8a7ac3479e2c50c353cde.tar.gz
Merge upstream Git snapshot into athena/unstable
Diffstat (limited to 'java/org/gnu/emacs/EmacsContextMenu.java')
-rw-r--r--java/org/gnu/emacs/EmacsContextMenu.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/java/org/gnu/emacs/EmacsContextMenu.java b/java/org/gnu/emacs/EmacsContextMenu.java
index 17e6033377d..2bbf2a313d6 100644
--- a/java/org/gnu/emacs/EmacsContextMenu.java
+++ b/java/org/gnu/emacs/EmacsContextMenu.java
@@ -361,8 +361,23 @@ 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 the second time a context menu is
+ dismissed. Since the second call after such a dismissal is
+ otherwise liable to prematurely cancel any context menu
+ displayed immediately afterwards, ignore calls received
+ within 150 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 () - 150;
+
+ return rc;
}
});