delete submenus of main menu afterwards. this fixes the issue with borders

not getting unreffed


SVN revision: 39494
This commit is contained in:
Hannes Janetzek 2009-03-15 17:06:18 +00:00
parent 2a2aa35801
commit 2422e04b20
1 changed files with 16 additions and 10 deletions

View File

@ -128,7 +128,6 @@ e_int_menus_main_new(void)
e_menu_item_submenu_set(mi, subm);
subm = e_int_menus_clients_new();
e_object_data_set(E_OBJECT(subm), dat);
dat->clients = subm;
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Windows"));
@ -401,6 +400,13 @@ _e_int_menus_main_del_hook(void *obj)
m = obj;
dat = e_object_data_get(E_OBJECT(obj));
e_object_del(E_OBJECT(dat->apps));
e_object_del(E_OBJECT(dat->all_apps));
e_object_del(E_OBJECT(dat->desktops));
e_object_del(E_OBJECT(dat->clients));
e_object_del(E_OBJECT(dat->enlightenment));
e_object_del(E_OBJECT(dat->config));
free(dat);
_e_int_menus_augmentation_del(m, eina_hash_find(_e_int_menus_augmentation, "main/0"));
_e_int_menus_augmentation_del(m, eina_hash_find(_e_int_menus_augmentation, "main/1"));
@ -414,6 +420,7 @@ _e_int_menus_main_del_hook(void *obj)
_e_int_menus_augmentation_del(m, eina_hash_find(_e_int_menus_augmentation, "main/9"));
_e_int_menus_augmentation_del(m, eina_hash_find(_e_int_menus_augmentation, "main/10"));
_e_int_menus_augmentation_del(m, eina_hash_find(_e_int_menus_augmentation, "main/11"));
}
static void
@ -1149,7 +1156,7 @@ _e_int_menus_clients_free_hook(void *obj)
m = obj;
borders = e_object_data_get(E_OBJECT(m));
EINA_LIST_FREE(borders, bd)
e_object_unref(E_OBJECT(bd));
e_object_unref(E_OBJECT(bd));
}
static void
@ -1188,7 +1195,6 @@ _e_int_menus_clients_icon_cb(void *data, E_Menu *m, E_Menu_Item *mi)
bd = data;
E_OBJECT_CHECK(bd);
o = e_icon_add(m->evas);
e_icon_object_set(o, e_border_icon_add(bd, m->evas));
mi->icon_object = o;
@ -1257,7 +1263,7 @@ _e_int_menus_lost_clients_free_hook(void *obj)
m = obj;
borders = e_object_data_get(E_OBJECT(m));
EINA_LIST_FREE(borders, bd)
e_object_unref(E_OBJECT(bd));
e_object_unref(E_OBJECT(bd));
}
static void
@ -1278,21 +1284,21 @@ _e_int_menus_lost_clients_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
static void
_e_int_menus_augmentation_add(E_Menu *m, Eina_List *augmentation)
{
E_Int_Menu_Augmentation *aug;
E_Int_Menu_Augmentation *aug;
Eina_List *l;
EINA_LIST_FOREACH(augmentation, l, aug)
if (aug->add.func) aug->add.func(aug->add.data, m);
if (aug->add.func) aug->add.func(aug->add.data, m);
}
static void
_e_int_menus_augmentation_del(E_Menu *m, Eina_List *augmentation)
{
E_Int_Menu_Augmentation *aug;
E_Int_Menu_Augmentation *aug;
Eina_List *l;
EINA_LIST_FOREACH(augmentation, l, aug)
if (aug->del.func) aug->del.func(aug->del.data, m);
if (aug->del.func) aug->del.func(aug->del.data, m);
}
static void