From 02910fd64d59c80635205c590ff123601358d65b Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Tue, 7 Jun 2016 17:14:57 +0200 Subject: [PATCH] (Cocoa) Implement ui_application_process_events --- ui/drivers/cocoa/ui_cocoa_application.m | 11 +++++++++++ ui/drivers/ui_cocoa.m | 14 ++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ui/drivers/cocoa/ui_cocoa_application.m b/ui/drivers/cocoa/ui_cocoa_application.m index d757b7ddf3..63af3b67ee 100644 --- a/ui/drivers/cocoa/ui_cocoa_application.m +++ b/ui/drivers/cocoa/ui_cocoa_application.m @@ -19,10 +19,21 @@ #include #include +#include +#include "cocoa_common.h" #include "../../ui_companion_driver.h" static void ui_application_cocoa_process_events(void) { + while (1) + { + NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES]; + if (!event) + break; + [event retain]; + [NSApp sendEvent: event]; + [event release]; + }; } const ui_application_t ui_application_cocoa = { diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 46b3da0f4b..6d246fe358 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -207,15 +207,7 @@ static char** waiting_argv; static void poll_iteration(void) { - while (1) - { - NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES]; - if (!event) - break; - [event retain]; - [NSApp sendEvent: event]; - [event release]; - }; + } - (void) rarch_main @@ -224,7 +216,9 @@ static void poll_iteration(void) while (ret != -1) { unsigned sleep_ms = 0; - poll_iteration(); + const ui_application_t *application = ui_companion_driver_get_application_ptr(); + if (application) + application->process_events(); ret = runloop_iterate(&sleep_ms); if (ret == 1 && sleep_ms > 0) retro_sleep(sleep_ms);