Fix Fl::add_timeout() in draw() under Linux (STR 3188)
Timeouts queued during Fl_Widget::draw() - called by Fl::flush() - would not be serviced unless other events were processed. For Details see STR 3188.
This commit is contained in:
parent
61a86d1941
commit
0a124ac7e1
@ -105,6 +105,7 @@ Changes in FLTK 1.4.0 Released: ??? ?? 2019
|
||||
Other Improvements
|
||||
|
||||
- (add new items here)
|
||||
- Fix Fl::add_timeout() in draw() under Linux (STR 3188)
|
||||
- Class Fl_Native_File_Chooser uses in priority the file chooser dialog
|
||||
of GTK version 3 when available on the running X11 platform, and falls back
|
||||
to version 2 when V3 is not available. In contrast, GTK version 2 was used
|
||||
|
@ -480,6 +480,10 @@ double Fl_X11_Screen_Driver::wait(double time_to_wait)
|
||||
Fl::flush();
|
||||
if (Fl::idle && !in_idle) // 'idle' may have been set within flush()
|
||||
time_to_wait = 0.0;
|
||||
else if (first_timeout && first_timeout->time < time_to_wait) {
|
||||
// another timeout may have been queued within flush(), see STR #3188
|
||||
time_to_wait = first_timeout->time >= 0.0 ? first_timeout->time : 0.0;
|
||||
}
|
||||
return this->poll_or_select_with_delay(time_to_wait);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user