if we check the time only ever second we can get into trouble, eg:
assume its 12:34:56.99, displaying 12:34:56 takes some time and so its already 12:34:57 when we display 12:34:56. to fix that i set the time to check the clock to 0.01 seconds. that shouldnt hurt much since we only redraw the clock when the string has changed. a more complex approach would be to analyze the strftime-string and set the timeout accordingly. but i dont know if its really worth the effort and beeing a bit off schedule can happen too, just not as often as if you are in seconds mode.
This commit is contained in:
parent
a5310fae34
commit
66a241cc43
2 changed files with 7 additions and 3 deletions
|
@ -1,5 +1,8 @@
|
|||
(Format: Year/Month/Day)
|
||||
Changes for 0.9.14:
|
||||
*05/06/30:
|
||||
* Fix for clock displaying %S too late sometimes (Mathias)
|
||||
ClockTool.cc
|
||||
*05/06/28:
|
||||
* Fix for toggling the toolbar doesnt update strut (thanx C. Monti)
|
||||
* Little reordering of ToolbarMenu items (Mathias)
|
||||
|
|
|
@ -148,10 +148,11 @@ ClockTool::ClockTool(const FbTk::FbWindow &parent,
|
|||
|
||||
_FB_USES_NLS;
|
||||
|
||||
// setup timer to update the graphics each second
|
||||
// setup timer to check the clock every 0.01 second
|
||||
// if nothing has changed, it wont update the graphics
|
||||
timeval delay;
|
||||
delay.tv_sec = 1;
|
||||
delay.tv_usec = 0;
|
||||
delay.tv_sec = 0;
|
||||
delay.tv_usec = 100000;
|
||||
m_timer.setTimeout(delay);
|
||||
FbTk::RefCount<FbTk::Command> update_graphic(new FbTk::SimpleCommand<ClockTool>(*this,
|
||||
&ClockTool::updateTime));
|
||||
|
|
Loading…
Reference in a new issue