aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/comet.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/comet.c b/src/comet.c
index fd50aeb..a32382f 100644
--- a/src/comet.c
+++ b/src/comet.c
@@ -150,26 +150,22 @@ static gboolean disk_update(Button *btn)
return G_SOURCE_CONTINUE;
}
-static gboolean date_update(gpointer data)
+static gboolean date_update(Button *btn)
{
- ButtonSimple *btn = data;
-
GDateTime *dt = g_date_time_new_now_local();
char *text = g_date_time_format(dt, "%A %d %H:%M");
g_date_time_unref(dt);
g_assert_nonnull(text);
- size_t len1 = g_utf8_strlen(btn->text, -1);
- size_t len2 = g_utf8_strlen(text, -1);
- button_simple_set_text((gpointer)btn, text, btn->text_color);
+ button_simple_set_text(btn, text, CAST(btn, ButtonSimple)->text_color);
struct {
State *state;
timer_t timer;
- } *date_ctx = btn->data;
+ } *date_ctx = CAST(btn, ButtonSimple)->data;
log_debug("Updated date and time");
- state_request_redraw(date_ctx->state, len1 != len2);
+ state_request_redraw(date_ctx->state, false);
struct timespec current;
clock_gettime(CLOCK_REALTIME, &current);
@@ -394,7 +390,7 @@ int main(int argc, char **argv)
connect_attach_state(con, state);
connect_attach_source(con);
- guint source_alrm = g_unix_signal_add(SIGUSR1, date_update, date_btn);
+ guint source_alrm = g_unix_signal_add(SIGUSR1, G_SOURCE_FUNC(date_update), date_btn);
guint source_term = g_unix_signal_add(SIGTERM, mainloop_quit, mainloop);
guint source_int = g_unix_signal_add(SIGINT, mainloop_quit, mainloop);