X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Ftimer.c;h=400f5062f1d6dd86fc764daf8399f8f8834af377;hb=db8dde85ef01518d74df205d083ba1fb501b21c9;hp=f063defdbe60834dd1cf3c7a6fc55980560e5c6b;hpb=08f91ed533b4e0634d482ec1af638b5288ef9d6c;p=rodin%2Fchimara.git diff --git a/libchimara/timer.c b/libchimara/timer.c index f063def..400f506 100644 --- a/libchimara/timer.c +++ b/libchimara/timer.c @@ -1,6 +1,6 @@ #include "timer.h" -extern ChimaraGlkPrivate *glk_data; +extern GPrivate *glk_data_key; /** * glk_request_timer_events: @@ -46,6 +46,8 @@ extern ChimaraGlkPrivate *glk_data; void glk_request_timer_events(glui32 millisecs) { + ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); + // Stop any existing timer if(glk_data->timer_id != 0) { g_source_remove(glk_data->timer_id); @@ -55,7 +57,7 @@ glk_request_timer_events(glui32 millisecs) if(millisecs == 0) return; - glk_data->timer_id = g_timeout_add(millisecs, push_timer_event, NULL); + glk_data->timer_id = g_timeout_add(millisecs, (GSourceFunc)push_timer_event, glk_data->self); } /* @@ -63,9 +65,9 @@ glk_request_timer_events(glui32 millisecs) * Will always return TRUE */ gboolean -push_timer_event(gpointer data) +push_timer_event(ChimaraGlk *glk) { - event_throw(evtype_Timer, NULL, 0, 0); + event_throw(glk, evtype_Timer, NULL, 0, 0); return TRUE; }