double cur_position = 0.0, new_position = 0.0;
double move_amount = 0.05;
Eina_Bool flag_finish_animation = EINA_FALSE;
- if (!wd) return EINA_FALSE;
+ if (!wd)
+ {
+ wd->button_animator = NULL;
+ return ECORE_CALLBACK_CANCEL;
+ }
edje_object_part_drag_value_get(wd->as,
"elm.drag_button_base", &cur_position, NULL);
(wd->enabled_position & ELM_ACTIONSLIDER_RIGHT))
evas_object_smart_callback_call(data, SIG_SELECTED,
(void *)wd->text_right);
- return EINA_FALSE;
+ wd->button_animator = NULL;
+ return ECORE_CALLBACK_CANCEL;
}
- return EINA_TRUE;
+ return ECORE_CALLBACK_RENEW;
}
static void
wd->final_position = 0.5;
evas_object_smart_callback_call(data, SIG_SELECTED,
(void *)wd->text_center);
+ if (wd->button_animator) ecore_animator_del(wd->button_animator);
+ wd->button_animator = ecore_animator_add(_button_animation, data);
return;
}
if ((wd->enabled_position & ELM_ACTIONSLIDER_RIGHT) &&
else
wd->final_position = _FINAL_POS_BY_ORIENTATION(0);
}
+ if (wd->button_animator) ecore_animator_del(wd->button_animator);
wd->button_animator = ecore_animator_add(_button_animation, data);
#undef _FINAL_POS_BY_ORIENTATION