summaryrefslogtreecommitdiff
path: root/src/wlclock.c
diff options
context:
space:
mode:
authorLeon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>2020-09-26 12:53:19 +0200
committerLeon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>2020-09-26 13:04:26 +0200
commit24e8ee33b509f71bbcaaffe83bd49eb144c2c1a7 (patch)
tree3906c5890d3ff9493e3bae1581c7c4fc2b6895cd /src/wlclock.c
parent4a1859161d80530ba62d970f4afab2c10876e3bc (diff)
downloadwlclock-24e8ee33b509f71bbcaaffe83bd49eb144c2c1a7.tar.gz
wlclock-24e8ee33b509f71bbcaaffe83bd49eb144c2c1a7.tar.bz2
Render on callback
Diffstat (limited to 'src/wlclock.c')
-rw-r--r--src/wlclock.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/wlclock.c b/src/wlclock.c
index 47154b8..89b6e5f 100644
--- a/src/wlclock.c
+++ b/src/wlclock.c
@@ -500,9 +500,10 @@ static bool handle_command_flags (struct Wlclock *clock, int argc, char *argv[])
return true;
}
-static time_t get_timeout (time_t now)
+/* Timeout until next minute. */
+static time_t get_timeout (void)
{
- /* Timeout until the next minute. */
+ time_t now = time(NULL);
return ((now / 60 * 60 ) + 60 - now) * 1000;
}
@@ -511,6 +512,9 @@ static void clock_run (struct Wlclock *clock)
clocklog(clock, 1, "[main] Starting loop.\n");
clock->ret = EXIT_SUCCESS;
+ // TODO simpler event loop, other signal handling
+ // while ( wl_display_dispatch(clock->display) != -1 );
+
struct pollfd fds[2] = { 0 };
size_t wayland_fd = 0;
size_t signal_fd = 1;
@@ -556,12 +560,10 @@ static void clock_run (struct Wlclock *clock)
}
} while ( errno == EAGAIN );
- clock->now = time(NULL);
- int ret = poll(fds, 2, get_timeout(clock->now));
+ int ret = poll(fds, 2, get_timeout());
if ( ret == 0 )
{
- clock->now = time(NULL);
update_all_hands(clock);
continue;
}