comparison src/ui_spinner.c @ 1523:24a12aa0cb54

Fix up event source ids type: gint -> guint. Functions like g_timeout_add() or g_idle_add() return a guint greater than 0, but in most places it was wrongly stored as int and initialized to -1. This broke assertions matching in g_source_remove() for example since id was always greater than 0 even when timer was not set (-1 was casted to the biggest guint).
author zas_
date Mon, 06 Apr 2009 22:13:54 +0000
parents 89dedc61b1bd
children 956aab097ea7
comparison
equal deleted inserted replaced
1522:d7206703d90f 1523:24a12aa0cb54
40 typedef struct _SpinnerData SpinnerData; 40 typedef struct _SpinnerData SpinnerData;
41 struct _SpinnerData { 41 struct _SpinnerData {
42 GtkWidget *image; 42 GtkWidget *image;
43 GList *list; /* list of pixbufs */ 43 GList *list; /* list of pixbufs */
44 guint frame; 44 guint frame;
45 gint timer_id; 45 guint timer_id; /* event source id */
46 }; 46 };
47 47
48 static void spinner_set_frame(SpinnerData *sp, guint frame) 48 static void spinner_set_frame(SpinnerData *sp, guint frame)
49 { 49 {
50 GdkPixbuf *pb; 50 GdkPixbuf *pb;
73 73
74 static void spinner_set_timeout(SpinnerData *sp, gint interval) 74 static void spinner_set_timeout(SpinnerData *sp, gint interval)
75 { 75 {
76 if (!sp) return; 76 if (!sp) return;
77 77
78 if (sp->timer_id != -1) 78 if (sp->timer_id)
79 { 79 {
80 g_source_remove(sp->timer_id); 80 g_source_remove(sp->timer_id);
81 sp->timer_id = -1; 81 sp->timer_id = 0;
82 } 82 }
83 83
84 if (interval > 0) 84 if (interval > 0)
85 { 85 {
86 sp->timer_id = g_timeout_add(interval, spinner_loop_cb, sp); 86 sp->timer_id = g_timeout_add(interval, spinner_loop_cb, sp);
115 GtkWidget *spinner_new(const gchar *path, gint interval) 115 GtkWidget *spinner_new(const gchar *path, gint interval)
116 { 116 {
117 SpinnerData *sp; 117 SpinnerData *sp;
118 118
119 sp = g_new0(SpinnerData, 1); 119 sp = g_new0(SpinnerData, 1);
120 sp->list = NULL;
121 sp->timer_id = -1;
122 120
123 if (path) 121 if (path)
124 { 122 {
125 gchar *pathl; 123 gchar *pathl;
126 GdkPixbuf *pb; 124 GdkPixbuf *pb;
196 void spinner_step(GtkWidget *spinner, gboolean reset) 194 void spinner_step(GtkWidget *spinner, gboolean reset)
197 { 195 {
198 SpinnerData *sp; 196 SpinnerData *sp;
199 197
200 sp = g_object_get_data(G_OBJECT(spinner), "spinner"); 198 sp = g_object_get_data(G_OBJECT(spinner), "spinner");
201 if (sp->timer_id != -1) 199 if (sp->timer_id)
202 { 200 {
203 log_printf("spinner warning: attempt to step with timer set\n"); 201 log_printf("spinner warning: attempt to step with timer set\n");
204 return; 202 return;
205 } 203 }
206 204