fix(anim): remove custom_exec_cb equality check to fix MixroPython issue
We can't test for custom_exec_cb equality because in the MicroPython binding a wrapper callback is used here an the real callback data is stored in the . Therefore equality check would remove all animations.
This commit is contained in:
@@ -509,11 +509,14 @@ static bool remove_concurrent_anims(lv_anim_t * a_current)
|
|||||||
a = _lv_ll_get_head(anim_ll_p);
|
a = _lv_ll_get_head(anim_ll_p);
|
||||||
while(a != NULL) {
|
while(a != NULL) {
|
||||||
bool del = false;
|
bool del = false;
|
||||||
|
/*We can't test for custom_exec_cb equality because in the MicroPython binding
|
||||||
|
*a wrapper callback is used here an the real callback data is stored in the `user_data`.
|
||||||
|
*Therefore equality check would remove all animations.*/
|
||||||
if(a != a_current &&
|
if(a != a_current &&
|
||||||
(a->act_time >= 0 || a->early_apply) &&
|
(a->act_time >= 0 || a->early_apply) &&
|
||||||
(a->var == a_current->var) &&
|
(a->var == a_current->var) &&
|
||||||
((a->exec_cb && a->exec_cb == a_current->exec_cb) ||
|
((a->exec_cb && a->exec_cb == a_current->exec_cb)
|
||||||
(a->custom_exec_cb && a->custom_exec_cb == a_current->custom_exec_cb))) {
|
/*|| (a->custom_exec_cb && a->custom_exec_cb == a_current->custom_exec_cb)*/)) {
|
||||||
_lv_ll_remove(anim_ll_p, a);
|
_lv_ll_remove(anim_ll_p, a);
|
||||||
if(a->deleted_cb != NULL) a->deleted_cb(a);
|
if(a->deleted_cb != NULL) a->deleted_cb(a);
|
||||||
lv_free(a);
|
lv_free(a);
|
||||||
|
|||||||
Reference in New Issue
Block a user