summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-12-27 12:27:33 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-12-27 12:27:33 +0100
commita234ba7f332e42d24c3bf432fc5b529b5735b4bb (patch)
treef1553cc92d973baaa7d0198f5e1613b78e7703db
parent07c2ba56da4e9ca3ad8d7eb02da9faa180183a99 (diff)
parent3701950a90e0b57d4a64e9ca26c1616cbc386c39 (diff)
Merge branch 'master' of https://github.com/fltk/fltk
-rw-r--r--CHANGES.txt2
-rw-r--r--src/Fl_Clock.cxx11
2 files changed, 10 insertions, 3 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 2f00c254a..0f9698124 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -18,6 +18,8 @@ Changes in FLTK 1.4.0 Released: ??? ?? 2019
New Features and Extensions
- (add new items here)
+ - Fix Fl::add_timeout() under Linux (STR 3516).
+ - Fix early timeouts in Fl_Clock seen in some environments (STR 3516).
- Fl_Printer::begin_job() uses by default the Gnome print dialog on the X11
platform when the GTK library is available at run-time. That can be turned off
with Fl::option(OPTION_PRINTER_USES_GTK, false).
diff --git a/src/Fl_Clock.cxx b/src/Fl_Clock.cxx
index ca7237212..4d7f21e47 100644
--- a/src/Fl_Clock.cxx
+++ b/src/Fl_Clock.cxx
@@ -212,11 +212,16 @@ static void tick(void *v) {
time_t sec;
int usec;
Fl::system_driver()->gettime(&sec, &usec);
+ double delta = (1000000 - usec)/1000000.; // time till next second
+ // if current time is just before full second, show that full second
+ // and wait one more second (STR 3516)
+ if (delta < 0.1) {
+ delta += 1.0;
+ sec++;
+ }
((Fl_Clock*)v)->value((ulong)sec);
- // 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);
+ Fl::add_timeout(delta, tick, v);
}
int Fl_Clock::handle(int event) {