Mercurial > geeqie
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 |