diff options
| author | Po Lu | 2024-02-21 11:49:47 +0800 |
|---|---|---|
| committer | Po Lu | 2024-02-21 11:49:47 +0800 |
| commit | 7b0d75018885d8d34ff7c4427a83a21a4808282c (patch) | |
| tree | e64ead721797464d9e65110818fc361821e44945 /java | |
| parent | 1acc7cb851417b83ae90fe4d0ee9f01af2e03722 (diff) | |
| download | emacs-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.java | 18 |
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 | ||