diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 8f388d3f7..113b5c7dc 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -760,11 +760,10 @@ _e_main_screens_init(void) E_Manager *man; E_Container *con; - man = e_manager_new(roots[i]); + man = e_manager_new(roots[i], i); e_init_show(); if (man) { - man->num = i; e_manager_show(man); } else diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index dc201aec0..afa2e2551 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -56,7 +56,7 @@ e_manager_list(void) } E_Manager * -e_manager_new(Ecore_X_Window root) +e_manager_new(Ecore_X_Window root, int num) { E_Manager *man; Ecore_Event_Handler *h; @@ -66,6 +66,7 @@ e_manager_new(Ecore_X_Window root) if (!man) return NULL; managers = evas_list_append(managers, man); man->root = root; + man->num = num; ecore_x_window_size_get(man->root, &(man->w), &(man->h)); if (e_config->use_virtual_roots) { @@ -361,13 +362,12 @@ e_manager_number_get(int num) { Evas_List *l; E_Manager *man; - int current; if (!managers) return NULL; - for (l = managers, current = 0; l; l = l->next, current++) + for (l = managers; l; l = l->next) { man = l->data; - if (current == num) + if (man->num == num) return man; } return NULL; diff --git a/src/bin/e_manager.h b/src/bin/e_manager.h index 6bd2947a9..e5930f42d 100644 --- a/src/bin/e_manager.h +++ b/src/bin/e_manager.h @@ -28,7 +28,7 @@ EAPI int e_manager_init(void); EAPI int e_manager_shutdown(void); EAPI Evas_List *e_manager_list(void); -EAPI E_Manager *e_manager_new(Ecore_X_Window root); +EAPI E_Manager *e_manager_new(Ecore_X_Window root, int num); EAPI void e_manager_manage_windows(E_Manager *man); EAPI void e_manager_show(E_Manager *man); EAPI void e_manager_hide(E_Manager *man);