]> Dogcows Code - chaz/tint2/blobdiff - src/clock/clock.c
fixed resize_clock() and snapshot
[chaz/tint2] / src / clock / clock.c
index 6d4bea918486608458bc4f302cc4647c01f64406..e29c138a687cf82825a38d24c2321ce669aebe83 100644 (file)
@@ -66,8 +66,11 @@ void update_clocks_sec(void* arg)
 
 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++)
@@ -255,8 +258,6 @@ void resize_clock (void *obj)
        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
@@ -271,6 +272,8 @@ void resize_clock (void *obj)
                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);
This page took 0.023088 seconds and 4 git commands to generate.