diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2019-12-26 17:19:05 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2019-12-26 17:19:05 +0100 |
| commit | 35a3e7cc16f8312c5a750041adf67d2e086d059b (patch) | |
| tree | 3b787ffd8f4eff784230aa8ee528b8ba887e642f /src/drivers/X11 | |
| parent | 0a23d7fe6e3a7b8000dcc6e7c4826e894f184079 (diff) | |
Fix Fl::add_timeout() under Linux (STR 3516)
See comment 14 (excerpt):
"The current implementation basically handles add_timeout() the same
way as repeat_timeout(), i.e. add_timeout() *calls* repeat_timeout().
However, repeat_timeout() intentionally *corrects* the timeout value
by the value found in the global variable 'missed_timeout_by' which
is set when the timer expires, directly before the timer callback
is called. This variable is never reset."
This commit resets the variable as necessary in Fl::add_timeout().
Diffstat (limited to 'src/drivers/X11')
| -rw-r--r-- | src/drivers/X11/Fl_X11_Screen_Driver.cxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/drivers/X11/Fl_X11_Screen_Driver.cxx b/src/drivers/X11/Fl_X11_Screen_Driver.cxx index 75467b71b..b93d22ac6 100644 --- a/src/drivers/X11/Fl_X11_Screen_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Screen_Driver.cxx @@ -635,6 +635,7 @@ const char *Fl_X11_Screen_Driver::get_system_scheme() void Fl_X11_Screen_Driver::add_timeout(double time, Fl_Timeout_Handler cb, void *argp) { elapse_timeouts(); + missed_timeout_by = 0; repeat_timeout(time, cb, argp); } |
