diff options
| author | Po Lu | 2023-03-09 16:30:02 +0800 |
|---|---|---|
| committer | Po Lu | 2023-03-09 16:30:02 +0800 |
| commit | e859a14bee7a84a3aaed45770c89ef60c68b3e08 (patch) | |
| tree | 5f875640bc70b3726ad1a3d2f41732ecc54fbcdf /src/androidgui.h | |
| parent | 745890de5204850bb4173c19ceb79c698acb7a20 (diff) | |
| download | emacs-e859a14bee7a84a3aaed45770c89ef60c68b3e08.tar.gz emacs-e859a14bee7a84a3aaed45770c89ef60c68b3e08.zip | |
Fix menu and popup race conditions on Android
* java/org/gnu/emacs/EmacsActivity.java (onContextMenuClosed):
* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu)
(onMenuItemClick, run):
* java/org/gnu/emacs/EmacsDialog.java (EmacsDialog, onClick)
(createDialog, onDismiss): Take menu event serial, and pass it
along in context menu events.
* java/org/gnu/emacs/EmacsNative.java (sendContextMenu): New
argument.
* src/android.c (sendContextMenu): Pass serial number in event.
* src/androidgui.h (struct android_menu_event): New field
`menu_event_serial'.
* src/androidmenu.c (FIND_METHOD_STATIC)
(android_init_emacs_context_menu): Adjust method declarations.
(android_menu_show, android_dialog_show):
* src/androidterm.c (handle_one_android_event): Expect serial in
context menu events.
* src/androidterm.h: Update prototypes.
Diffstat (limited to 'src/androidgui.h')
| -rw-r--r-- | src/androidgui.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/androidgui.h b/src/androidgui.h index afcaed98cae..5858a168080 100644 --- a/src/androidgui.h +++ b/src/androidgui.h | |||
| @@ -418,6 +418,9 @@ struct android_menu_event | |||
| 418 | 418 | ||
| 419 | /* Menu event ID. */ | 419 | /* Menu event ID. */ |
| 420 | int menu_event_id; | 420 | int menu_event_id; |
| 421 | |||
| 422 | /* Menu event serial; this counter identifies the context menu. */ | ||
| 423 | int menu_event_serial; | ||
| 421 | }; | 424 | }; |
| 422 | 425 | ||
| 423 | enum android_ime_operation | 426 | enum android_ime_operation |