From d7cc67d2f192683a450c9732eb00670bbcd23f48 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sat, 18 Jan 2014 16:28:59 +0000 Subject: Mac OS: put idle processing under an alloc/release pair of an NSAutoreleasePool. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10066 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_cocoa.mm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/Fl_cocoa.mm') diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 65705bfb2..085e14069 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -752,8 +752,18 @@ int fl_wait( double time ) return (got_events); } -double fl_mac_flush_and_wait(double time_to_wait, char in_idle) { +double fl_mac_flush_and_wait(double time_to_wait) { + static int in_idle = 0; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + if (Fl::idle) { + if (!in_idle) { + in_idle = 1; + Fl::idle(); + in_idle = 0; + } + // the idle function may turn off idle, we can then wait: + if (Fl::idle) time_to_wait = 0.0; + } Fl::flush(); if (Fl::idle && !in_idle) // 'idle' may have been set within flush() time_to_wait = 0.0; -- cgit v1.2.3