From ed1c374aaa32ebe1cbcc682dc26232d46d33eb50 Mon Sep 17 00:00:00 2001 From: Federico Angelilli Date: Sun, 17 Mar 2024 17:00:47 +0100 Subject: Refactor date_update function --- src/comet.c | 14 +++++--------- 1 file 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, ¤t); @@ -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); -- cgit v1.2.3