summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Clock.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Fl_Clock.cxx b/src/Fl_Clock.cxx
index a9271452b..ca7237212 100644
--- a/src/Fl_Clock.cxx
+++ b/src/Fl_Clock.cxx
@@ -213,7 +213,10 @@ static void tick(void *v) {
int usec;
Fl::system_driver()->gettime(&sec, &usec);
((Fl_Clock*)v)->value((ulong)sec);
- Fl::add_timeout((1000000 - usec)/1000000., tick, v); // time till next second
+
+ // schedule timer event slightly later than the next second (+25 ms)
+ // to prevent multiple timer events if triggered too early (STR 3516)
+ Fl::add_timeout((1025000 - usec)/1000000., tick, v);
}
int Fl_Clock::handle(int event) {