From: Richard Kettlewell Date: Wed, 11 Jun 2008 09:57:25 +0000 (+0100) Subject: Refetch queue on pause/resume so that start times are always right (or X-Git-Tag: 4.1~15^2~55 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/15837f6a85332fbebf28f839bf4009218342bdc6 Refetch queue on pause/resume so that start times are always right (or absent if unknowable). --- diff --git a/disobedience/queue-generic.c b/disobedience/queue-generic.c index 39f60ab..5759915 100644 --- a/disobedience/queue-generic.c +++ b/disobedience/queue-generic.c @@ -37,8 +37,8 @@ * status to everything else found in that list. * * To do: + * - random play icon sensitivity is wrong (onl) if changed from edit menu * - drag and drop queue rearrangement - * - edit menu * - display playing row in a different color? */ #include "disobedience.h" diff --git a/disobedience/queue.c b/disobedience/queue.c index 87930b7..9c0dcc4 100644 --- a/disobedience/queue.c +++ b/disobedience/queue.c @@ -112,8 +112,11 @@ static gboolean playing_periodic(gpointer attribute((unused)) data) { static void queue_init(void) { /* Arrange a callback whenever the playing state changes */ event_register("playing-changed", playing_changed, 0); + /* We reget both playing track and queue at pause/resume so that start times + * can be computed correctly */ event_register("pause-changed", playing_changed, 0); - /* ...and when the queue changes */ + event_register("pause-changed", queue_changed, 0); + /* Reget the queue whenever it changes */ event_register("queue-changed", queue_changed, 0); /* ...and once a second anyway */ g_timeout_add(1000/*ms*/, playing_periodic, 0);