forked from enlightenment/enlightenment
add more stacking layers (10 now), bump module api numebr as a result
and fix actions infinite loop on shutdown. SVN revision: 71322
This commit is contained in:
parent
db7437e047
commit
7bac5692b1
|
@ -3168,10 +3168,15 @@ e_actions_init(void)
|
||||||
EINTERN int
|
EINTERN int
|
||||||
e_actions_shutdown(void)
|
e_actions_shutdown(void)
|
||||||
{
|
{
|
||||||
|
Eina_List *tlist = NULL, *l;
|
||||||
|
E_Action *act;
|
||||||
|
|
||||||
e_action_predef_name_all_del();
|
e_action_predef_name_all_del();
|
||||||
|
|
||||||
while(action_list)
|
EINA_LIST_FOREACH(action_list, l, act)
|
||||||
e_object_del(action_list->data);
|
tlist = eina_list_append(tlist, act);
|
||||||
|
EINA_LIST_FREE(tlist, act)
|
||||||
|
e_object_del(E_OBJECT(act));
|
||||||
|
|
||||||
action_names = eina_list_free(action_names);
|
action_names = eina_list_free(action_names);
|
||||||
eina_hash_free(actions);
|
eina_hash_free(actions);
|
||||||
|
|
|
@ -128,7 +128,7 @@ e_container_new(E_Manager *man)
|
||||||
con->scratch_win = ecore_x_window_override_new(con->win, 0, 0, 7, 7);
|
con->scratch_win = ecore_x_window_override_new(con->win, 0, 0, 7, 7);
|
||||||
|
|
||||||
/* init layers */
|
/* 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);
|
con->layers[i].win = ecore_x_window_input_new(con->win, 0, 0, 1, 1);
|
||||||
ecore_x_window_lower(con->layers[i].win);
|
ecore_x_window_lower(con->layers[i].win);
|
||||||
|
@ -588,7 +588,7 @@ e_container_border_remove(E_Border *bd)
|
||||||
if (!bd->zone) return;
|
if (!bd->zone) return;
|
||||||
/* FIXME: Could revert to old behaviour, ->layer is consistent
|
/* FIXME: Could revert to old behaviour, ->layer is consistent
|
||||||
* with pos now. */
|
* with pos now. */
|
||||||
for (i = 0; i < 7; i++)
|
for (i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
bd->zone->container->layers[i].clients =
|
bd->zone->container->layers[i].clients =
|
||||||
eina_list_remove(bd->zone->container->layers[i].clients, bd);
|
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;
|
if (!bd->zone) return NULL;
|
||||||
/* Remove from old layer */
|
/* Remove from old layer */
|
||||||
for (i = 0; i < 7; i++)
|
for (i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
bd->zone->container->layers[i].clients =
|
bd->zone->container->layers[i].clients =
|
||||||
eina_list_remove(bd->zone->container->layers[i].clients, bd);
|
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;
|
if (!bd->zone) return NULL;
|
||||||
/* Remove from old layer */
|
/* Remove from old layer */
|
||||||
for (i = 0; i < 7; i++)
|
for (i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
bd->zone->container->layers[i].clients =
|
bd->zone->container->layers[i].clients =
|
||||||
eina_list_remove(bd->zone->container->layers[i].clients, bd);
|
eina_list_remove(bd->zone->container->layers[i].clients, bd);
|
||||||
|
@ -729,7 +729,7 @@ e_container_border_lower(E_Border *bd)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Need to check the layers above */
|
/* 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)
|
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;
|
if (!bd->zone) return;
|
||||||
/* Remove from old layer */
|
/* Remove from old layer */
|
||||||
for (i = 0; i < 7; i++)
|
for (i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
bd->zone->container->layers[i].clients =
|
bd->zone->container->layers[i].clients =
|
||||||
eina_list_remove(bd->zone->container->layers[i].clients, bd);
|
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;
|
if (!bd->zone) return;
|
||||||
/* Remove from old layer */
|
/* Remove from old layer */
|
||||||
for (i = 0; i < 7; i++)
|
for (i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
bd->zone->container->layers[i].clients =
|
bd->zone->container->layers[i].clients =
|
||||||
eina_list_remove(bd->zone->container->layers[i].clients, bd);
|
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;
|
list->container = con;
|
||||||
e_object_ref(E_OBJECT(list->container));
|
e_object_ref(E_OBJECT(list->container));
|
||||||
eina_array_step_set(&(list->client_array), sizeof(list->client_array), 256);
|
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_LIST_FOREACH(con->layers[i].clients, l, bd)
|
||||||
eina_array_push(&(list->client_array), 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);
|
ecore_x_window_free(con->event_win);
|
||||||
/* We can't use e_object_del here, because border adds a ref to itself
|
/* 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 */
|
* 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);
|
ecore_x_window_free(con->layers[i].win);
|
||||||
/* FIXME: had to disable this as it was freeing already freed items during
|
/* 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);
|
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;
|
Eina_List *tmp = NULL;
|
||||||
E_Border *bd;
|
E_Border *bd;
|
||||||
|
|
|
@ -50,7 +50,7 @@ struct _E_Container
|
||||||
struct {
|
struct {
|
||||||
Ecore_X_Window win;
|
Ecore_X_Window win;
|
||||||
Eina_List *clients;
|
Eina_List *clients;
|
||||||
} layers[7];
|
} layers[10];
|
||||||
|
|
||||||
Ecore_X_Window scratch_win;
|
Ecore_X_Window scratch_win;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifdef E_TYPEDEFS
|
#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 E_Module;
|
||||||
typedef struct _E_Module_Api E_Module_Api;
|
typedef struct _E_Module_Api E_Module_Api;
|
||||||
|
|
Loading…
Reference in New Issue