aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorPo Lu2024-02-21 11:49:47 +0800
committerPo Lu2024-02-21 11:49:47 +0800
commit7b0d75018885d8d34ff7c4427a83a21a4808282c (patch)
treee64ead721797464d9e65110818fc361821e44945 /java
parent1acc7cb851417b83ae90fe4d0ee9f01af2e03722 (diff)
downloademacs-7b0d75018885d8d34ff7c4427a83a21a4808282c.tar.gz
emacs-7b0d75018885d8d34ff7c4427a83a21a4808282c.zip
Work around premature dismissals of submenus under Android
* java/org/gnu/emacs/EmacsContextMenu.java (display): If between HONEYCOMB and N, set wasSubmenuSelected.
Diffstat (limited to 'java')
-rw-r--r--java/org/gnu/emacs/EmacsContextMenu.java18
1 files changed, 17 insertions, 1 deletions
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
361 public Boolean 361 public Boolean
362 call () 362 call ()
363 { 363 {
364 boolean rc;
365
364 lastMenuEventSerial = serial; 366 lastMenuEventSerial = serial;
365 return display1 (window, xPosition, yPosition); 367 rc = display1 (window, xPosition, yPosition);
368
369 /* Android 3.0 to Android 7.0 perform duplicate calls to
370 onContextMenuClosed after a context menu is dismissed for
371 the second or third time. Since the second call after such
372 a dismissal is otherwise liable to prematurely cancel any
373 context menu displayed immediately afterwards, ignore calls
374 received within 300 milliseconds of this menu's being
375 displayed. */
376
377 if (rc && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB
378 && Build.VERSION.SDK_INT < Build.VERSION_CODES.N)
379 wasSubmenuSelected = System.currentTimeMillis ();
380
381 return rc;
366 } 382 }
367 }); 383 });
368 384