diff --git a/particles/list.c b/particles/list.c index bbb4d4f..64db593 100644 --- a/particles/list.c +++ b/particles/list.c @@ -118,13 +118,18 @@ instantiate(const struct particle *particle, const struct tag_set *tags) e->exposables[i] = pp->instantiate(pp, tags); } - struct exposable *exposable = exposable_common_new( - particle, particle->on_click_template); + char *on_click = particle->on_click_template != NULL + ? tags_expand_template(particle->on_click_template, tags) + : NULL; + + struct exposable *exposable = exposable_common_new(particle, on_click); exposable->private = e; exposable->destroy = &exposable_destroy; exposable->begin_expose = &begin_expose; exposable->expose = &expose; exposable->on_mouse = &on_mouse; + + free(on_click); return exposable; }