forked from enlightenment/efl
support setting the default menu explicitly.
SVN revision: 37098
This commit is contained in:
parent
510146a383
commit
1065c6298a
|
@ -210,6 +210,7 @@ struct Efreet_Menu_Desktop
|
||||||
static char *efreet_menu_prefix = NULL; /**< The $XDG_MENU_PREFIX env var */
|
static char *efreet_menu_prefix = NULL; /**< The $XDG_MENU_PREFIX env var */
|
||||||
Ecore_List *efreet_menu_kde_legacy_dirs = NULL; /**< The directories to use for KDELegacy entries */
|
Ecore_List *efreet_menu_kde_legacy_dirs = NULL; /**< The directories to use for KDELegacy entries */
|
||||||
static const char *efreet_tag_menu = NULL;
|
static const char *efreet_tag_menu = NULL;
|
||||||
|
static char *efreet_menu_file = NULL; /**< A menu file set explicityl as default */
|
||||||
|
|
||||||
static Ecore_Hash *efreet_merged_menus = NULL;
|
static Ecore_Hash *efreet_merged_menus = NULL;
|
||||||
static Ecore_Hash *efreet_merged_dirs = NULL;
|
static Ecore_Hash *efreet_merged_dirs = NULL;
|
||||||
|
@ -538,6 +539,7 @@ void
|
||||||
efreet_menu_shutdown(void)
|
efreet_menu_shutdown(void)
|
||||||
{
|
{
|
||||||
IF_FREE(efreet_menu_prefix);
|
IF_FREE(efreet_menu_prefix);
|
||||||
|
IF_FREE(efreet_menu_file);
|
||||||
|
|
||||||
IF_FREE_HASH(efreet_menu_handle_cbs);
|
IF_FREE_HASH(efreet_menu_handle_cbs);
|
||||||
IF_FREE_HASH(efreet_menu_filter_cbs);
|
IF_FREE_HASH(efreet_menu_filter_cbs);
|
||||||
|
@ -564,6 +566,14 @@ efreet_menu_new(void)
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
efreet_menu_file_set(const char *file)
|
||||||
|
{
|
||||||
|
IF_FREE(efreet_menu_file);
|
||||||
|
efreet_menu_file = NULL;
|
||||||
|
if (file) efreet_menu_file = strdup(file);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Returns the Efreet_Menu_Internal representation of the default menu or
|
* @return Returns the Efreet_Menu_Internal representation of the default menu or
|
||||||
* NULL if none found
|
* NULL if none found
|
||||||
|
@ -582,6 +592,12 @@ efreet_menu_get(void)
|
||||||
if (ecore_file_exists(menu))
|
if (ecore_file_exists(menu))
|
||||||
return efreet_menu_parse(menu);
|
return efreet_menu_parse(menu);
|
||||||
|
|
||||||
|
if (efreet_menu_file)
|
||||||
|
{
|
||||||
|
if (ecore_file_exists(efreet_menu_file))
|
||||||
|
return efreet_menu_parse(efreet_menu_file);
|
||||||
|
}
|
||||||
|
|
||||||
/* fallback to the XDG_CONFIG_DIRS */
|
/* fallback to the XDG_CONFIG_DIRS */
|
||||||
config_dirs = efreet_config_dirs_get();
|
config_dirs = efreet_config_dirs_get();
|
||||||
ecore_list_first_goto(config_dirs);
|
ecore_list_first_goto(config_dirs);
|
||||||
|
|
|
@ -52,6 +52,7 @@ struct Efreet_Menu
|
||||||
EAPI int efreet_menu_kde_legacy_init(void);
|
EAPI int efreet_menu_kde_legacy_init(void);
|
||||||
|
|
||||||
EAPI Efreet_Menu *efreet_menu_new(void);
|
EAPI Efreet_Menu *efreet_menu_new(void);
|
||||||
|
EAPI void efreet_menu_file_set(const char *file);
|
||||||
EAPI Efreet_Menu *efreet_menu_get(void);
|
EAPI Efreet_Menu *efreet_menu_get(void);
|
||||||
EAPI Efreet_Menu *efreet_menu_parse(const char *path);
|
EAPI Efreet_Menu *efreet_menu_parse(const char *path);
|
||||||
EAPI int efreet_menu_save(Efreet_Menu *menu, const char *path);
|
EAPI int efreet_menu_save(Efreet_Menu *menu, const char *path);
|
||||||
|
|
Loading…
Reference in New Issue