diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 7bf8b7b70..f7ef8d4f2 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -240,6 +240,24 @@ e_container_current_get(E_Manager *man) return (E_Container *)l->data; } +E_Container * +e_container_number_get(E_Manager *man, int num) +{ + Evas_List *l; + + E_OBJECT_CHECK_RETURN(man, NULL); + E_OBJECT_TYPE_CHECK_RETURN(man, E_MANAGER_TYPE, NULL); + for (l = man->containers; l; l = l->next) + { + E_Container *con; + + con = l->data; + if (con->num == num) + return con; + } + return NULL; +} + void e_container_move(E_Container *con, int x, int y) { diff --git a/src/bin/e_container.h b/src/bin/e_container.h index 817b51751..992860dd0 100644 --- a/src/bin/e_container.h +++ b/src/bin/e_container.h @@ -98,6 +98,7 @@ EAPI E_Container *e_container_new(E_Manager *man); EAPI void e_container_show(E_Container *con); EAPI void e_container_hide(E_Container *con); EAPI E_Container *e_container_current_get(E_Manager *man); +EAPI E_Container *e_container_number_get(E_Manager *man, int num); EAPI void e_container_move(E_Container *con, int x, int y); EAPI void e_container_resize(E_Container *con, int w, int h); EAPI void e_container_move_resize(E_Container *con, int x, int y, int w, int h); diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c index e3c8a1a61..19bab326f 100644 --- a/src/bin/e_dialog.c +++ b/src/bin/e_dialog.c @@ -36,7 +36,7 @@ e_dialog_new(E_Container *con) man = e_manager_current_get(); if (!man) return NULL; con = e_container_current_get(man); - if (!con) con = e_manager_container_number_get(man, 0); + if (!con) con = e_container_number_get(man, 0); if (!con) return NULL; } dia = E_OBJECT_ALLOC(E_Dialog, E_DIALOG_TYPE, _e_dialog_free); diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 2e24ec346..dc201aec0 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -141,7 +141,7 @@ e_manager_manage_windows(E_Manager *man) E_ATOM_CONTAINER, &id, 1); if (ret == 1) - con = e_manager_container_number_get(man, id); + con = e_container_number_get(man, id); if (!con) con = e_container_current_get(man); @@ -356,20 +356,19 @@ e_manager_current_get(void) return managers->data; } -E_Container * -e_manager_container_number_get(E_Manager *man, int num) +E_Manager * +e_manager_number_get(int num) { Evas_List *l; - - E_OBJECT_CHECK_RETURN(man, NULL); - E_OBJECT_TYPE_CHECK_RETURN(man, E_MANAGER_TYPE, NULL); - for (l = man->containers; l; l = l->next) + E_Manager *man; + int current; + + if (!managers) return NULL; + for (l = managers, current = 0; l; l = l->next, current++) { - E_Container *con; - - con = l->data; - if (con->num == num) - return con; + man = l->data; + if (current == num) + return man; } return NULL; } diff --git a/src/bin/e_manager.h b/src/bin/e_manager.h index 1d8d46e42..6bd2947a9 100644 --- a/src/bin/e_manager.h +++ b/src/bin/e_manager.h @@ -38,8 +38,7 @@ EAPI void e_manager_move_resize(E_Manager *man, int x, int y, int w, EAPI void e_manager_raise(E_Manager *man); EAPI void e_manager_lower(E_Manager *man); EAPI E_Manager *e_manager_current_get(void); - -EAPI E_Container *e_manager_container_number_get(E_Manager *man, int num); +EAPI E_Manager *e_manager_number_get(int num); EAPI void e_managers_keys_grab(void); EAPI void e_managers_keys_ungrab(void); diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index 23b2b7771..a8c34403c 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -144,7 +144,7 @@ e_util_container_number_get(int num) E_Container *con; man = l->data; - con = e_manager_container_number_get(man, num); + con = e_container_number_get(man, num); if (con) return con; } return NULL;