diff --git a/particles/dynlist.c b/particles/dynlist.c index bd002d1..8c6319c 100644 --- a/particles/dynlist.c +++ b/particles/dynlist.c @@ -69,7 +69,6 @@ static void on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event, enum mouse_button btn, int x, int y) { - //const struct particle *p = exposable->particle; const struct private *e = exposable->private; if (exposable->on_click[btn] != NULL) { diff --git a/particles/map.c b/particles/map.c index 3710f72..e2d8c03 100644 --- a/particles/map.c +++ b/particles/map.c @@ -66,7 +66,10 @@ on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event, const struct particle *p = exposable->particle; const struct eprivate *e = exposable->private; - if (exposable->on_click[btn] != NULL) { + if ((event == ON_MOUSE_MOTION && + exposable->particle->have_on_click_template) || + exposable->on_click[btn] != NULL) + { /* We have our own handler */ exposable_default_on_mouse(exposable, bar, event, btn, x, y); return; diff --git a/particles/progress-bar.c b/particles/progress-bar.c index 74c8ebe..a825117 100644 --- a/particles/progress-bar.c +++ b/particles/progress-bar.c @@ -87,7 +87,10 @@ static void on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event, enum mouse_button btn, int x, int y) { - if (exposable->on_click == NULL) { + if ((event == ON_MOUSE_MOTION && + exposable->particle->have_on_click_template) || + exposable->on_click[btn] != NULL) + { exposable_default_on_mouse(exposable, bar, event, btn, x, y); return; } diff --git a/particles/ramp.c b/particles/ramp.c index 14594a2..3fa2fc8 100644 --- a/particles/ramp.c +++ b/particles/ramp.c @@ -62,7 +62,10 @@ on_mouse(struct exposable *exposable, struct bar *bar, enum mouse_event event, const struct particle *p = exposable->particle; const struct eprivate *e = exposable->private; - if (exposable->on_click[btn] != NULL) { + if ((event == ON_MOUSE_MOTION && + exposable->particle->have_on_click_template) || + exposable->on_click[btn] != NULL) + { /* We have our own handler */ exposable_default_on_mouse(exposable, bar, event, btn, x, y); return;