|
|
|
@@ -389,18 +389,19 @@ bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) |
|
|
|
{
|
|
|
|
JUCE_AUTORELEASEPOOL
|
|
|
|
{
|
|
|
|
CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.001, true);
|
|
|
|
auto msRemaining = endTime - Time::currentTimeMillis();
|
|
|
|
|
|
|
|
NSEvent* e = [NSApp nextEventMatchingMask: NSEventMaskAny
|
|
|
|
untilDate: [NSDate dateWithTimeIntervalSinceNow: 0.001]
|
|
|
|
inMode: NSDefaultRunLoopMode
|
|
|
|
dequeue: YES];
|
|
|
|
if (msRemaining <= 0)
|
|
|
|
break;
|
|
|
|
|
|
|
|
if (e != nil && (isEventBlockedByModalComps == nullptr || ! (*isEventBlockedByModalComps) (e)))
|
|
|
|
[NSApp sendEvent: e];
|
|
|
|
CFRunLoopRunInMode (kCFRunLoopDefaultMode, jmin (1.0, msRemaining * 0.001), true);
|
|
|
|
|
|
|
|
if (Time::currentTimeMillis() >= endTime)
|
|
|
|
break;
|
|
|
|
if (NSEvent* e = [NSApp nextEventMatchingMask: NSEventMaskAny
|
|
|
|
untilDate: [NSDate dateWithTimeIntervalSinceNow: 0.001]
|
|
|
|
inMode: NSDefaultRunLoopMode
|
|
|
|
dequeue: YES])
|
|
|
|
if (isEventBlockedByModalComps == nullptr || ! (*isEventBlockedByModalComps) (e))
|
|
|
|
[NSApp sendEvent: e];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|