diff options
| author | Po Lu | 2023-03-12 19:36:09 +0800 |
|---|---|---|
| committer | Po Lu | 2023-03-12 19:36:09 +0800 |
| commit | 776f1ca3e3551b98569ab7daa58cd6921048881e (patch) | |
| tree | 641b5e5790ebffc1f9caf313caee4a0443d5e92e /src/android.c | |
| parent | 82b4b9e8692c349a45d319fe05c9fbfed4ab203d (diff) | |
| download | emacs-776f1ca3e3551b98569ab7daa58cd6921048881e.tar.gz emacs-776f1ca3e3551b98569ab7daa58cd6921048881e.zip | |
Update Android port
* src/android.c (android_check_if_event):
* src/androidgui.h: New function.
* src/androidterm.c (android_event_is_for_frame): New function.
(android_reset_conversion): Free and unqueue all text conversion
events for the given frame.
Diffstat (limited to 'src/android.c')
| -rw-r--r-- | src/android.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/android.c b/src/android.c index e4f9dd0ffbe..a2c239736a7 100644 --- a/src/android.c +++ b/src/android.c | |||
| @@ -601,6 +601,40 @@ android_next_event (union android_event *event_return) | |||
| 601 | pthread_mutex_unlock (&event_queue.mutex); | 601 | pthread_mutex_unlock (&event_queue.mutex); |
| 602 | } | 602 | } |
| 603 | 603 | ||
| 604 | bool | ||
| 605 | android_check_if_event (union android_event *event_return, | ||
| 606 | bool (*predicate) (union android_event *, | ||
| 607 | void *), | ||
| 608 | void *arg) | ||
| 609 | { | ||
| 610 | struct android_event_container *container; | ||
| 611 | |||
| 612 | pthread_mutex_lock (&event_queue.mutex); | ||
| 613 | |||
| 614 | /* Loop over each event. */ | ||
| 615 | container = event_queue.events.last; | ||
| 616 | for (; container != &event_queue.events; container = container->last) | ||
| 617 | { | ||
| 618 | /* See if the predicate matches. */ | ||
| 619 | if ((*predicate) (&container->event, arg)) | ||
| 620 | { | ||
| 621 | /* Copy out the event and return true. */ | ||
| 622 | *event_return = container->event; | ||
| 623 | --event_queue.num_events; | ||
| 624 | |||
| 625 | /* Unlink container. */ | ||
| 626 | container->last->next = container->next; | ||
| 627 | container->next->last = container->last; | ||
| 628 | free (container); | ||
| 629 | pthread_mutex_unlock (&event_queue.mutex); | ||
| 630 | return true; | ||
| 631 | } | ||
| 632 | } | ||
| 633 | |||
| 634 | pthread_mutex_unlock (&event_queue.mutex); | ||
| 635 | return false; | ||
| 636 | } | ||
| 637 | |||
| 604 | void | 638 | void |
| 605 | android_write_event (union android_event *event) | 639 | android_write_event (union android_event *event) |
| 606 | { | 640 | { |