static void _e_int_menus_main_showhide(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_main_restart(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_main_exit(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_int_menus_desktops_free_hook(void *obj);
static void _e_int_menus_desk_item_cb(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_item_label_set(Efreet_Menu *entry, E_Menu_Item *mi);
e_util_menu_item_theme_icon_set(mi, "preferences-system-windows");
e_menu_item_callback_set(mi, _e_int_menus_main_showhide, NULL);
+ e_object_free_attach_func_set(E_OBJECT(m), _e_int_menus_desktops_free_hook);
return m;
}
}
static void
+_e_int_menus_desktops_free_hook(void *obj)
+{
+ E_Menu *m;
+ Eina_List *l;
+ E_Menu_Item *mi;
+
+ m = obj;
+ EINA_LIST_FOREACH(m->items, l, mi)
+ {
+ if (mi->submenu)
+ e_object_del(E_OBJECT(mi->submenu));
+ }
+}
+
+static void
_e_int_menus_desk_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
{
e_configure_registry_call("screen/virtual_desktops", m->zone->container, NULL);
/* Match locale with one from the list */
EINA_LIST_FREE(all_locales, locale_next)
+ {
if (found == 0)
{
E_Locale_Parts *locale_parts_next;
e_intl_locale_parts_free(locale_parts_next);
E_FREE(locale_lr_next);
}
-
+ free (locale_next);
+ }
+
e_intl_locale_parts_free(locale_parts);
free(locale_lr);
E_FREE(locale_cs_canonic);