void update_clocks_min(void* arg)
{
+ // remember old_sec because after suspend/hibernate the clock should be updated directly, and not
+ // on next minute change
+ time_t old_sec = time_clock.tv_sec;
gettimeofday(&time_clock, 0);
- if (time_clock.tv_sec % 60 == 0) {
+ if (time_clock.tv_sec % 60 == 0 || time_clock.tv_sec - old_sec > 60) {
int i;
if (time1_format) {
for (i=0 ; i < nb_panel ; i++)
new_width += (2*clock->area.paddingxlr) + (2*clock->area.bg->border.width);
Panel *panel = ((Area*)obj)->panel;
- clock->area.posx = panel->area.width - clock->area.width - panel->area.paddingxlr - panel->area.bg->border.width;
-
if (new_width > clock->area.width || new_width < (clock->area.width-6)) {
// resize clock
// we try to limit the number of resize
systray.area.resize = 1;
panel_refresh = 1;
}
+ clock->area.posx = panel->area.width - clock->area.width - panel->area.paddingxlr - panel->area.bg->border.width;
+
g_object_unref (layout);
cairo_destroy (c);