bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/tools/clouseau.git/commit/?id=5b20f26f76c89ec578530020c9bd73cfea4325e7
commit 5b20f26f76c89ec578530020c9bd73cfea4325e7 Author: Marcel Hollerbach <[email protected]> Date: Sun Apr 1 18:34:54 2018 +0200 clouseu: filter the manager objects better --- src/lib/clouseau_debug.c | 54 ++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/src/lib/clouseau_debug.c b/src/lib/clouseau_debug.c index 546ca48..cb04087 100644 --- a/src/lib/clouseau_debug.c +++ b/src/lib/clouseau_debug.c @@ -959,10 +959,41 @@ _main_loop_win_screenshot_cb(Eina_Debug_Session *session, int srcid, void *buffe WRAPPER_TO_XFER_MAIN_LOOP(_win_screenshot_cb) +EAPI Efl_Dbg_Info* +clouseau_eo_info_find(Efl_Dbg_Info *root, const char *name) +{ + Eina_Value_List eo_list; + Eina_List *n; + Efl_Dbg_Info *info; + + if (!root) return NULL; + + eina_value_pget(&(root->value), &eo_list); + + EINA_LIST_FOREACH(eo_list.list, n, info) + { + if (!strcmp(info->name, name)) + { + return info; + } + } + return NULL; +} + static Eina_Bool _only_manager(const void *container EINA_UNUSED, void *data, void *fdata EINA_UNUSED) { - return efl_isa(data, EFL_UI_FOCUS_MANAGER_INTERFACE); + Efl_Dbg_Info *manager_data, *root; + + if (!efl_isa(data, EFL_UI_FOCUS_MANAGER_INTERFACE)) return EINA_FALSE; + + //check for debug information + root = EFL_DBG_INFO_LIST_APPEND(NULL, "Root"); + efl_dbg_info_get(data, root); + manager_data = clouseau_eo_info_find(root, "Efl.Ui.Focus.Manager"); + if (!manager_data) return EINA_FALSE; + + return EINA_TRUE; } static void @@ -986,27 +1017,6 @@ _main_loop_focus_manager_list_cb(Eina_Debug_Session *session, int srcid, void *b WRAPPER_TO_XFER_MAIN_LOOP(_focus_manager_list_cb) -EAPI Efl_Dbg_Info* -clouseau_eo_info_find(Efl_Dbg_Info *root, const char *name) -{ - Eina_Value_List eo_list; - Eina_List *n; - Efl_Dbg_Info *info; - - if (!root) return NULL; - - eina_value_pget(&(root->value), &eo_list); - - EINA_LIST_FOREACH(eo_list.list, n, info) - { - if (!strcmp(info->name, name)) - { - return info; - } - } - return NULL; -} - static Eina_List* _fetch_children(Efl_Ui_Focus_Manager *m) { --
