add more stacking layers (10 now), bump module api numebr as a result
authorCarsten Haitzler <raster@rasterman.com>
Tue, 22 May 2012 12:11:19 +0000 (12:11 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Tue, 22 May 2012 12:11:19 +0000 (12:11 +0000)
and fix actions infinite loop on shutdown.

SVN revision: 71322

src/bin/e_actions.c
src/bin/e_container.c
src/bin/e_container.h
src/bin/e_module.h

index 5bbc155..aec40ed 100644 (file)
@@ -3168,10 +3168,15 @@ e_actions_init(void)
 EINTERN int
 e_actions_shutdown(void)
 {
+   Eina_List *tlist = NULL, *l;
+   E_Action *act;
+   
    e_action_predef_name_all_del();
 
-   while(action_list)
-     e_object_del(action_list->data);
+   EINA_LIST_FOREACH(action_list, l, act)
+     tlist = eina_list_append(tlist, act);
+   EINA_LIST_FREE(tlist, act)
+     e_object_del(E_OBJECT(act));
 
    action_names = eina_list_free(action_names);
    eina_hash_free(actions);
index 9889487..b7fbd47 100644 (file)
@@ -128,7 +128,7 @@ e_container_new(E_Manager *man)
    con->scratch_win = ecore_x_window_override_new(con->win, 0, 0, 7, 7);
    
    /* init layers */
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
        con->layers[i].win = ecore_x_window_input_new(con->win, 0, 0, 1, 1);
        ecore_x_window_lower(con->layers[i].win);
@@ -588,7 +588,7 @@ e_container_border_remove(E_Border *bd)
    if (!bd->zone) return;
    /* FIXME: Could revert to old behaviour, ->layer is consistent
     * with pos now. */
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
        bd->zone->container->layers[i].clients =
           eina_list_remove(bd->zone->container->layers[i].clients, bd);
@@ -645,7 +645,7 @@ e_container_border_raise(E_Border *bd)
 
    if (!bd->zone) return NULL;
    /* Remove from old layer */
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
        bd->zone->container->layers[i].clients =
           eina_list_remove(bd->zone->container->layers[i].clients, bd);
@@ -699,7 +699,7 @@ e_container_border_lower(E_Border *bd)
 
    if (!bd->zone) return NULL;
    /* Remove from old layer */
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
        bd->zone->container->layers[i].clients =
           eina_list_remove(bd->zone->container->layers[i].clients, bd);
@@ -729,7 +729,7 @@ e_container_border_lower(E_Border *bd)
    else
      {
        /* Need to check the layers above */
-       for (i = pos + 1; i < 7; i++)
+       for (i = pos + 1; i < 10; i++)
          {
             if (bd->zone->container->layers[i].clients)
               {
@@ -750,7 +750,7 @@ e_container_border_stack_above(E_Border *bd, E_Border *above)
 
    if (!bd->zone) return;
    /* Remove from old layer */
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
        bd->zone->container->layers[i].clients =
           eina_list_remove(bd->zone->container->layers[i].clients, bd);
@@ -783,7 +783,7 @@ e_container_border_stack_below(E_Border *bd, E_Border *below)
 
    if (!bd->zone) return;
    /* Remove from old layer */
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
        bd->zone->container->layers[i].clients =
           eina_list_remove(bd->zone->container->layers[i].clients, bd);
@@ -821,7 +821,7 @@ _e_container_border_list_new(E_Container *con)
    list->container = con;
    e_object_ref(E_OBJECT(list->container));
    eina_array_step_set(&(list->client_array), sizeof(list->client_array), 256);
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
         EINA_LIST_FOREACH(con->layers[i].clients, l, bd)
            eina_array_push(&(list->client_array), bd);
@@ -925,7 +925,7 @@ _e_container_free(E_Container *con)
    ecore_x_window_free(con->event_win);
    /* We can't use e_object_del here, because border adds a ref to itself
     * when it is removed, and the ref is never unref'ed */
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
         ecore_x_window_free(con->layers[i].win);
 /* FIXME: had to disable this as it was freeing already freed items during
@@ -1233,7 +1233,7 @@ _e_container_resize_handle(E_Container *con)
 
    ecore_event_add(E_EVENT_CONTAINER_RESIZE, ev, _e_container_event_container_resize_free, NULL);
 
-   for (i = 0; i < 7; i++)
+   for (i = 0; i < 10; i++)
      {
        Eina_List *tmp = NULL;
        E_Border *bd;
index 2c6dbaf..9844dcb 100644 (file)
@@ -50,7 +50,7 @@ struct _E_Container
    struct {
       Ecore_X_Window win;
       Eina_List *clients;
-   } layers[7];
+   } layers[10];
    
    Ecore_X_Window       scratch_win;
 };
index 3f3c477..b0ec35c 100644 (file)
@@ -1,6 +1,6 @@
 #ifdef E_TYPEDEFS
 
-#define E_MODULE_API_VERSION 9
+#define E_MODULE_API_VERSION 10
 
 typedef struct _E_Module     E_Module;
 typedef struct _E_Module_Api E_Module_Api;