emacs-diffs
[Top][All Lists]
Advanced

[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;
        }
       });
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]