From a91a6bc607c6e1c10497152b94b771218e3fda26 Mon Sep 17 00:00:00 2001 From: sebastid Date: Tue, 15 Mar 2005 10:26:05 +0000 Subject: [PATCH] Client list update. SVN revision: 13741 --- src/bin/Makefile.am | 2 -- src/bin/e_border.c | 32 ++++--------------------- src/bin/e_border.h | 2 +- src/bin/e_container.c | 8 ------- src/bin/e_container.h | 1 - src/bin/e_desk.c | 2 -- src/bin/e_desk.h | 2 -- src/bin/e_iconify.c | 54 ------------------------------------------- src/bin/e_iconify.h | 17 -------------- src/bin/e_includes.h | 1 - src/bin/e_int_menus.c | 21 ++++++++--------- src/bin/e_main.c | 9 -------- src/bin/e_zone.c | 44 +++++++++++------------------------ src/bin/e_zone.h | 3 --- 14 files changed, 30 insertions(+), 168 deletions(-) delete mode 100644 src/bin/e_iconify.c delete mode 100644 src/bin/e_iconify.h diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 763101aef..93043bcc0 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -37,7 +37,6 @@ e_focus.h \ e_place.h \ e_resist.h \ e_startup.h \ -e_iconify.h \ e_hints.h \ e_gadman.h \ e_signals.h \ @@ -75,7 +74,6 @@ e_focus.c \ e_place.c \ e_resist.c \ e_startup.c \ -e_iconify.c \ e_hints.c \ e_gadman.c \ e_signals.c \ diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 136097594..b8b0cfc33 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -310,9 +310,7 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map) bd->changed = 1; bd->zone = e_zone_current_get(con); - bd->zone->clients = evas_list_append(bd->zone->clients, bd); bd->desk = e_desk_current_get(bd->zone); - bd->desk->clients = evas_list_append(bd->desk->clients, bd); con->clients = evas_list_append(con->clients, bd); borders = evas_list_append(borders, bd); @@ -338,8 +336,6 @@ e_border_zone_set(E_Border *bd, E_Zone *zone) E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); if (bd->zone == zone) return; - bd->zone->clients = evas_list_remove(bd->zone->clients, bd); - zone->clients = evas_list_append(zone->clients, bd); bd->zone = zone; if (bd->desk->zone != bd->zone) @@ -377,8 +373,6 @@ e_border_desk_set(E_Border *bd, E_Desk *desk) E_OBJECT_CHECK(desk); E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); if (bd->desk == desk) return; - bd->desk->clients = evas_list_remove(bd->desk->clients, bd); - desk->clients = evas_list_append(desk->clients, bd); bd->desk = desk; e_border_zone_set(bd, desk->zone); @@ -947,9 +941,6 @@ e_border_uniconify(E_Border *bd) e_border_desk_set(bd, desk); bd->iconic = 0; e_border_show(bd); - /* FIXME: DEPRECATED? - e_iconify_border_remove(bd); - */ edje_object_signal_emit(bd->bg_object, "uniconify", ""); } iconic = 0; @@ -1055,6 +1046,11 @@ e_border_idler_before(void) } } +Evas_List * +e_border_clients_get() +{ + return borders; +} /* local subsystem functions */ static void @@ -1111,8 +1107,6 @@ _e_border_free(E_Border *bd) ecore_x_window_del(bd->win); bd->container->clients = evas_list_remove(bd->container->clients, bd); - bd->zone->clients = evas_list_remove(bd->zone->clients, bd); - bd->desk->clients = evas_list_remove(bd->desk->clients, bd); borders = evas_list_remove(borders, bd); free(bd); @@ -3503,10 +3497,6 @@ _e_border_reorder_after(E_Border *bd, E_Border *after) { bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_append_relative(bd->container->clients, bd, after); - bd->zone->clients = evas_list_remove(bd->zone->clients, bd); - bd->zone->clients = evas_list_append_relative(bd->zone->clients, bd, after); - bd->desk->clients = evas_list_remove(bd->desk->clients, bd); - bd->desk->clients = evas_list_append_relative(bd->desk->clients, bd, after); borders = evas_list_remove(borders, bd); borders = evas_list_append_relative(borders, bd, after); } @@ -3514,10 +3504,6 @@ _e_border_reorder_after(E_Border *bd, E_Border *after) { bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_append(bd->container->clients, bd); - bd->zone->clients = evas_list_remove(bd->zone->clients, bd); - bd->zone->clients = evas_list_append(bd->zone->clients, bd); - bd->desk->clients = evas_list_remove(bd->desk->clients, bd); - bd->desk->clients = evas_list_append(bd->desk->clients, bd); borders = evas_list_remove(borders, bd); borders = evas_list_append(borders, bd); } @@ -3530,10 +3516,6 @@ _e_border_reorder_before(E_Border *bd, E_Border *before) { bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_prepend_relative(bd->container->clients, bd, before); - bd->zone->clients = evas_list_remove(bd->zone->clients, bd); - bd->zone->clients = evas_list_prepend_relative(bd->zone->clients, bd, before); - bd->desk->clients = evas_list_remove(bd->desk->clients, bd); - bd->desk->clients = evas_list_prepend_relative(bd->desk->clients, bd, before); borders = evas_list_remove(borders, bd); borders = evas_list_prepend_relative(borders, bd, before); } @@ -3541,10 +3523,6 @@ _e_border_reorder_before(E_Border *bd, E_Border *before) { bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_prepend(bd->container->clients, bd); - bd->zone->clients = evas_list_remove(bd->zone->clients, bd); - bd->zone->clients = evas_list_prepend(bd->zone->clients, bd); - bd->desk->clients = evas_list_remove(bd->desk->clients, bd); - bd->desk->clients = evas_list_prepend(bd->desk->clients, bd); borders = evas_list_remove(borders, bd); borders = evas_list_prepend(borders, bd); } diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 9abf58d54..a4f05c386 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -306,7 +306,7 @@ EAPI E_Border *e_border_focused_get(void); EAPI void e_border_idler_before(void); -EAPI void e_border_iconified_list(void); +EAPI Evas_List *e_border_clients_get(); extern EAPI int E_EVENT_BORDER_RESIZE; extern EAPI int E_EVENT_BORDER_MOVE; diff --git a/src/bin/e_container.c b/src/bin/e_container.c index c1f693f84..aa6abd898 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -227,14 +227,6 @@ e_container_lower(E_Container *con) } } -Evas_List * -e_container_clients_list_get(E_Container *con) -{ - E_OBJECT_CHECK_RETURN(con, NULL); - E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); - return con->clients; -} - E_Zone * e_container_zone_at_point_get(E_Container *con, int x, int y) { diff --git a/src/bin/e_container.h b/src/bin/e_container.h index 8c85c526a..7072c6ae9 100644 --- a/src/bin/e_container.h +++ b/src/bin/e_container.h @@ -84,7 +84,6 @@ EAPI void e_container_move_resize(E_Container *con, int x, int y, int w, EAPI void e_container_raise(E_Container *con); EAPI void e_container_lower(E_Container *con); -EAPI Evas_List *e_container_clients_list_get(E_Container *con); EAPI E_Zone *e_container_zone_at_point_get(E_Container *con, int x, int y); EAPI E_Zone *e_container_zone_number_get(E_Container *con, int num); diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 0b1a5acb4..593f4f94a 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -43,7 +43,6 @@ e_desk_new(E_Zone *zone, int x, int y) desk = E_OBJECT_ALLOC(E_Desk, E_DESK_TYPE, _e_desk_free); if (!desk) return NULL; - desk->clients = NULL; desk->zone = zone; desk->num = ++desk_count; snprintf(name, sizeof(name), "Desktop %d, %d", x, y); @@ -237,7 +236,6 @@ static void _e_desk_free(E_Desk *desk) { E_FREE(desk->name); - evas_list_free(desk->clients); free(desk); } diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h index cc7f32540..a7283b2ff 100644 --- a/src/bin/e_desk.h +++ b/src/bin/e_desk.h @@ -22,8 +22,6 @@ struct _E_Desk char visible : 1; Evas_Object *bg_object; - - Evas_List *clients; }; struct _E_Event_Desk_Show diff --git a/src/bin/e_iconify.c b/src/bin/e_iconify.c deleted file mode 100644 index a71899f6c..000000000 --- a/src/bin/e_iconify.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#include "e.h" - -static Evas_List *_e_iconic_borders = NULL; - -int -e_iconify_init(void) -{ - /* FIXME: initialize some ecore events for iconify/uniconify - * (for things like modules to upate state - */ - return 1; -} - -int -e_iconify_shutdown(void) -{ - evas_list_free(_e_iconic_borders); - return 1; -} - -Evas_List * -e_iconify_clients_list_get(void) -{ - return _e_iconic_borders; -} - -int -e_iconify_border_iconfied(E_Border *bd) -{ - if (evas_list_find(_e_iconic_borders, bd)) return 1; - else return 0; -} - -void -e_iconify_border_add(E_Border *bd) -{ - E_OBJECT_CHECK(bd); - - /* FIXME send iconify event for this border */ - _e_iconic_borders = evas_list_append(_e_iconic_borders, bd); - -} - -void -e_iconify_border_remove(E_Border *bd) -{ - /* FIXME send uniconify event for this border */ - _e_iconic_borders = evas_list_remove(_e_iconic_borders, bd); -} - - diff --git a/src/bin/e_iconify.h b/src/bin/e_iconify.h deleted file mode 100644 index c3b773b3a..000000000 --- a/src/bin/e_iconify.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 - */ -#ifdef E_TYPEDEFS -#else -#ifndef E_ICONIFY_H -#define E_ICONIFY_H - -EAPI int e_iconify_init(void); -EAPI int e_iconify_shutdown(void); -EAPI Evas_List *e_iconify_clients_list_get(void); -EAPI int e_iconify_border_iconfied(E_Border *bd); -EAPI void e_iconify_border_add(E_Border *bd); -EAPI void e_iconify_border_remove(E_Border *bd); - -#endif -#endif diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h index 38fd87ae8..ad9ce5458 100644 --- a/src/bin/e_includes.h +++ b/src/bin/e_includes.h @@ -27,7 +27,6 @@ #include "e_place.h" #include "e_resist.h" #include "e_startup.h" -#include "e_iconify.h" #include "e_hints.h" #include "e_gadman.h" #include "e_signals.h" diff --git a/src/bin/e_int_menus.c b/src/bin/e_int_menus.c index bc1b67dc6..67dda780c 100644 --- a/src/bin/e_int_menus.c +++ b/src/bin/e_int_menus.c @@ -421,23 +421,22 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m) E_Menu_Item *mi; Evas_List *l, *borders = NULL; E_Menu *root; + E_Zone *zone; e_menu_pre_activate_callback_set(m, NULL, NULL); root = e_menu_root_get(m); - /* get the current containers clients */ - if ((root) && (root->zone)) + /* get the current clients */ + if (root) + zone = root->zone; + for (l = e_border_clients_get(); l; l = l->next) { - for (l = e_zone_clients_list_get(root->zone); l; l = l->next) - borders = evas_list_append(borders, l->data); + E_Border *border; + + border = l->data; + if ((border->zone == zone) || (border->iconic)) + borders = evas_list_append(borders, border); } - /* get the iconified clients from other containers */ - for (l = e_iconify_clients_list_get(); l; l = l->next) - { - if (!evas_list_find(borders, l->data)) - borders = evas_list_append(borders, l->data); - } - if (!borders) { /* FIXME here we want nothing, but that crashes!!! */ diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 59d2e4e9d..09c523657 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -271,15 +271,6 @@ main(int argc, char **argv) } _e_main_shutdown_push(e_module_shutdown); - /* setup iconification */ - if (!e_iconify_init()) - { - e_error_message_show("Enlightenment cannot setup its iconify system."); - _e_main_shutdown(-1); - } - else - _e_main_shutdown_push(e_iconify_shutdown); - if (!nowelcome) { /* explicitly show a gui dialog */ diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 193cb37d9..9772bd862 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -209,15 +209,6 @@ e_zone_bg_reconfigure(E_Zone *zone) evas_object_show(o); } -Evas_List * -e_zone_clients_list_get(E_Zone *zone) -{ - E_OBJECT_CHECK_RETURN(zone, NULL); - E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL); - return zone->clients; -} - - static void _e_zone_free(E_Zone *zone) { @@ -315,7 +306,7 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) E_Desk **new_desks; E_Desk *desk, *new_desk; int x, y, xx, yy, moved; - Evas_List *client; + Evas_List *l; E_Border *bd; E_Event_Zone_Desk_Count_Set *ev; @@ -332,7 +323,7 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) for(y = 0; y < yy; y++) { if (x < zone->desk_x_count && y < zone->desk_y_count) - desk = (E_Desk *) zone->desks[x + (y * zone->desk_x_count)]; + desk = zone->desks[x + (y * zone->desk_x_count)]; else desk = e_desk_new(zone, x, y); new_desks[x + (y * xx)] = desk; @@ -342,20 +333,16 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) if (xx < zone->desk_x_count) for (y = 0; y < zone->desk_y_count; y++) { - new_desk = (E_Desk *) - zone->desks[xx - 1 + (y * zone->desk_x_count)]; + new_desk = zone->desks[xx - 1 + (y * zone->desk_x_count)]; for (x = xx; x < zone->desk_x_count; x++) { - desk = (E_Desk *) - zone->desks[x + (y * zone->desk_x_count)]; + desk = zone->desks[x + (y * zone->desk_x_count)]; - /* Here desk->clients is removed from the list on desk_set - * so we want to iterate whilst it is not NULL */ - while (desk->clients) + for (l = zone->container->clients; l; l = l->next) { - bd = (E_Border *) desk->clients->data; - - e_border_desk_set(bd, new_desk); + bd = l->data; + if (bd->desk == desk) + e_border_desk_set(bd, new_desk); } e_object_del(E_OBJECT(desk)); } @@ -363,19 +350,16 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) if (yy < zone->desk_y_count) for (x = 0; x < zone->desk_x_count; x++) { - new_desk = (E_Desk *) - zone->desks[x + ((yy - 1) * zone->desk_x_count)]; + new_desk = zone->desks[x + ((yy - 1) * zone->desk_x_count)]; for (y = yy; y < zone->desk_y_count; y++) { - desk = (E_Desk *) - zone->desks[x + (y * zone->desk_x_count)]; + desk = zone->desks[x + (y * zone->desk_x_count)]; - /* again, list shrinking as we iterate */ - while (desk->clients) + for (l = zone->container->clients; l; l = l->next) { - bd = (E_Border *) desk->clients->data; - - e_border_desk_set(bd, new_desk); + bd = l->data; + if (bd->desk == desk) + e_border_desk_set(bd, new_desk); } e_object_del(E_OBJECT(desk)); } diff --git a/src/bin/e_zone.h b/src/bin/e_zone.h index 9f30b62c4..253c5c713 100644 --- a/src/bin/e_zone.h +++ b/src/bin/e_zone.h @@ -31,8 +31,6 @@ struct _E_Zone int desk_x_count, desk_y_count; int desk_x_current, desk_y_current; E_Desk **desks; - Evas_List *clients; - }; struct _E_Event_Zone_Desk_Count_Set @@ -48,7 +46,6 @@ EAPI void e_zone_resize(E_Zone *zone, int w, int h); EAPI void e_zone_move_resize(E_Zone *zone, int x, int y, int w, int h); EAPI E_Zone *e_zone_current_get(E_Container *con); EAPI void e_zone_bg_reconfigure(E_Zone *zone); -EAPI Evas_List *e_zone_clients_list_get(E_Zone *zone); EAPI void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count); EAPI void e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count);