Client list update.
authorsebastid <sebastid>
Tue, 15 Mar 2005 10:26:05 +0000 (10:26 +0000)
committersebastid <sebastid@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 15 Mar 2005 10:26:05 +0000 (10:26 +0000)
SVN revision: 13741

14 files changed:
src/bin/Makefile.am
src/bin/e_border.c
src/bin/e_border.h
src/bin/e_container.c
src/bin/e_container.h
src/bin/e_desk.c
src/bin/e_desk.h
src/bin/e_iconify.c [deleted file]
src/bin/e_iconify.h [deleted file]
src/bin/e_includes.h
src/bin/e_int_menus.c
src/bin/e_main.c
src/bin/e_zone.c
src/bin/e_zone.h

index 763101a..93043bc 100644 (file)
@@ -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 \
index 1360975..b8b0cfc 100644 (file)
@@ -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);
      }
index 9abf58d..a4f05c3 100644 (file)
@@ -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;
index c1f693f..aa6abd8 100644 (file)
@@ -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)
 {
index 8c85c52..7072c6a 100644 (file)
@@ -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);
 
index 0b1a5ac..593f4f9 100644 (file)
@@ -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);
 }
 
index cc7f325..a7283b2 100644 (file)
@@ -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 (file)
index a71899f..0000000
+++ /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 (file)
index c3b773b..0000000
+++ /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
index 38fd87a..ad9ce54 100644 (file)
@@ -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"
index bc1b67d..67dda78 100644 (file)
@@ -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;
 
-   /* 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);
+       border = l->data;
+       if ((border->zone == zone) || (border->iconic))
+         borders = evas_list_append(borders, border);
      }
-   
+
    if (!borders)
      { 
        /* FIXME here we want nothing, but that crashes!!! */
index 59d2e4e..09c5236 100644 (file)
@@ -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 */
index 193cb37..9772bd8 100644 (file)
@@ -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));
            }
index 9f30b62..253c5c7 100644 (file)
@@ -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);