aboutsummaryrefslogtreecommitdiff
path: root/src/pr_clock.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2016-05-31 22:49:58 +0200
committerThomas White <taw@bitwiz.org.uk>2016-05-31 22:49:58 +0200
commit0a5dcb945a9021a417b157fc0daaf0271a76fabf (patch)
tree117d813464504d3a06c9e9dd2d05d6543607c540 /src/pr_clock.c
parent36c253390094aa278372eee02ad630e6225a334a (diff)
Fix multiple bugs in PRClock
Diffstat (limited to 'src/pr_clock.c')
-rw-r--r--src/pr_clock.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/pr_clock.c b/src/pr_clock.c
index db661d7..8f80412 100644
--- a/src/pr_clock.c
+++ b/src/pr_clock.c
@@ -50,6 +50,7 @@ struct pr_clock
GDateTime *start;
double time_elapsed_at_start;
+ guint timer_id;
int running;
double time_allowed;
@@ -213,10 +214,10 @@ void pr_clock_set_pos(PRClock *n, int pos, int end)
}
-static gint close_clock_sig(GtkWidget *w, struct presentation *p)
+static gint close_clock_sig(GtkWidget *w, PRClock *n)
{
- p->clock->open = 0;
- p->clock = NULL;
+ g_source_remove(n->timer_id);
+ free(n);
return FALSE;
}
@@ -310,6 +311,7 @@ static gboolean reset_sig(GtkWidget *w, gpointer data)
static gboolean setpos_sig(GtkWidget *w, gpointer data)
{
struct pr_clock *n = data;
+ n->pos_reached = n->pos;
update_clock(n);
return FALSE;
}
@@ -422,10 +424,11 @@ PRClock *pr_clock_new()
n->time_elapsed = 0;
n->time_elapsed_at_start = 0;
n->pos = 0;
+ n->pos_reached = 0;
n->end = 0;
n->start = NULL;
update_clock(n);
- g_timeout_add_seconds(1, update_clock, n);
+ n->timer_id = g_timeout_add_seconds(1, update_clock, n);
gtk_window_set_title(GTK_WINDOW(n->window), "Presentation clock");