#ifndef WX_PRECOMP
#include "wx/defs.h"
#include "wx/app.h"
- #include "wx/frame.h"
- #include "wx/dialog.h"
#include "wx/dc.h"
#include "wx/intl.h"
#include "wx/log.h"
#import <AppKit/NSApplication.h>
#import <Foundation/NSRunLoop.h>
-#import <Foundation/NSArray.h>
-#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSThread.h>
#import <AppKit/NSEvent.h>
#import <Foundation/NSString.h>
&& ([NSDefaultRunLoopMode isEqualToString:mode] || [NSModalPanelRunLoopMode isEqualToString:mode]))
{
sg_needIdle = false;
- wxLogDebug(wxT("Processing idle events"));
+ wxLogTrace(wxTRACE_COCOA,wxT("Processing idle events"));
while(wxTheApp->ProcessIdle())
{
// Get the same events except don't block
if(event)
return event;
// we didn't get one, do some idle work
- wxLogDebug(wxT("Looping idle events"));
+ wxLogTrace(wxTRACE_COCOA,wxT("Looping idle events"));
}
// No more idle work requested, block
- wxLogDebug(wxT("Finished idle processing"));
+ wxLogTrace(wxTRACE_COCOA,wxT("Finished idle processing"));
}
else
- wxLogDebug(wxT("Avoiding idle processing sg_needIdle=%d"),sg_needIdle);
+ wxLogTrace(wxTRACE_COCOA,wxT("Avoiding idle processing sg_needIdle=%d"),sg_needIdle);
return [super nextEventMatchingMask:mask untilDate:expiration inMode:mode dequeue:flag];
}
- (void)sendEvent: (NSEvent*)anEvent
{
- wxLogDebug(wxT("SendEvent"));
+ wxLogTrace(wxTRACE_COCOA,wxT("SendEvent"));
sg_needIdle = true;
[super sendEvent: anEvent];
}
s_inYield = true;
// Run the event loop until it is out of events
- while(NSEvent *event = [GetNSApplication()
+ while(1)
+ {
+ wxAutoNSAutoreleasePool pool;
+ NSEvent *event = [GetNSApplication()
nextEventMatchingMask:NSAnyEventMask
- untilDate:[NSDate distantPast]
+ untilDate:nil /* ==[NSDate distantPast] */
inMode:NSDefaultRunLoopMode
- dequeue: YES])
- {
+ dequeue: YES];
+ if(!event)
+ break;
[GetNSApplication() sendEvent: event];
}