diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-10-09 19:38:44 +0200 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-10-09 19:45:38 +0200 |
commit | 6cd985b1ead5481617980e6a5ebef527861f7f15 (patch) | |
tree | cd87f63a8a5376ee473aebec1b78d92e98c9de44 | |
parent | b8fab9b8dd06599255d151ff0f1d84e35a5c222a (diff) | |
download | efl-devs/bu5hm4n/dead_events.tar.gz |
dead_eventsdevs/bu5hm4n/dead_events
-rw-r--r-- | src/lib/eo/eo_base_class.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index 782a57f52e..d4f4591398 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -1677,6 +1677,8 @@ _event_callback_call(Eo *obj_id, Efl_Object_Data *pd, .inserted_before = 0, .generation = 1, }; + Eina_Bool at_least_one = EINA_FALSE; + int c = 0; if (pd->callbacks_count == 0) return EINA_FALSE; else if ((desc == EFL_EVENT_CALLBACK_ADD) && @@ -1710,6 +1712,7 @@ restart_back: for (; idx > 0; idx--) { + c++; frame.idx = idx; cb = pd->callbacks + idx - 1; if (!(*cb)->delete_me) @@ -1736,6 +1739,7 @@ restart_back: // Handle nested restart of walking list if (lookup) lookup->current = idx - 1; it->func((void *) (*cb)->func_data, &ev); + at_least_one = EINA_TRUE; /* Abort callback calling if the func says so. */ if (pd->callback_stopped) { @@ -1759,6 +1763,7 @@ restart_back: // Handle nested restart of walking list if (lookup) lookup->current = idx - 1; (*cb)->items.item.func((void *) (*cb)->func_data, &ev); + at_least_one = EINA_TRUE; /* Abort callback calling if the func says so. */ if (pd->callback_stopped) { @@ -1789,6 +1794,9 @@ end: pd->callback_stopped = callback_already_stopped; + if (!at_least_one) + printf("Emitting dead event %s %d %d\n", desc->name, desc->legacy_is, c); + return ret; restart: EINA_INLIST_FOREACH(pd->current, lookup) |