summaryrefslogtreecommitdiff
path: root/src/drivers/X11/Fl_X11_Screen_Driver.cxx
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2019-12-26 17:19:05 +0100
committerAlbrecht Schlosser <albrechts.fltk@online.de>2019-12-26 17:19:05 +0100
commit35a3e7cc16f8312c5a750041adf67d2e086d059b (patch)
tree3b787ffd8f4eff784230aa8ee528b8ba887e642f /src/drivers/X11/Fl_X11_Screen_Driver.cxx
parent0a23d7fe6e3a7b8000dcc6e7c4826e894f184079 (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/Fl_X11_Screen_Driver.cxx')
-rw-r--r--src/drivers/X11/Fl_X11_Screen_Driver.cxx1
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);
}