aboutsummaryrefslogtreecommitdiffstats
path: root/src/android.c
diff options
context:
space:
mode:
authorPo Lu2023-03-12 19:36:09 +0800
committerPo Lu2023-03-12 19:36:09 +0800
commit776f1ca3e3551b98569ab7daa58cd6921048881e (patch)
tree641b5e5790ebffc1f9caf313caee4a0443d5e92e /src/android.c
parent82b4b9e8692c349a45d319fe05c9fbfed4ab203d (diff)
downloademacs-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.c34
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
604bool
605android_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
604void 638void
605android_write_event (union android_event *event) 639android_write_event (union android_event *event)
606{ 640{