From bab61a93d6167a552a76e538ec2929bf3eb3bb36 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Tue, 12 Mar 2019 17:21:53 +0100 Subject: Prevent unnecessary Fl_Clock timer events (STR 3516) See documentation @ STR 3516 --- src/Fl_Clock.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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) { -- cgit v1.2.3