diff --git a/src/Fl.cxx b/src/Fl.cxx index d999b0712..5035e3a87 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -449,7 +449,7 @@ double Fl::wait(double time_to_wait) { #endif } -#define FOREVER 0.01 //1e20 +#define FOREVER 1e20 int Fl::run() { while (Fl_X::first) wait(FOREVER); diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index cf0d72772..8b21fe0e3 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -257,6 +257,8 @@ int fl_wait(double time_to_wait) { } #endif // USE_ASYNC_SELECT + if (Fl::idle) time_to_wait = 0.0; + fl_unlock_function(); time_to_wait = (time_to_wait > 10000 ? 10000 : time_to_wait);