parent
de02fe4438
commit
c823b3fe29
|
@ -166,3 +166,7 @@
|
||||||
2012-11-24 Sebastian Dransfeld
|
2012-11-24 Sebastian Dransfeld
|
||||||
|
|
||||||
* Fix alloca
|
* Fix alloca
|
||||||
|
|
||||||
|
2012-11-26 Sebastian Dransfeld
|
||||||
|
|
||||||
|
* Update language for efreetd
|
||||||
|
|
|
@ -31,6 +31,9 @@ static Eina_List *icon_extra_dirs = NULL;
|
||||||
static Eina_List *icon_exts = NULL;
|
static Eina_List *icon_exts = NULL;
|
||||||
static Eina_Bool icon_flush = EINA_FALSE;
|
static Eina_Bool icon_flush = EINA_FALSE;
|
||||||
|
|
||||||
|
static Eina_Bool desktop_queue = EINA_FALSE;
|
||||||
|
static Eina_Bool icon_queue = EINA_FALSE;
|
||||||
|
|
||||||
static void desktop_changes_monitor_add(const char *path);
|
static void desktop_changes_monitor_add(const char *path);
|
||||||
|
|
||||||
/* internal */
|
/* internal */
|
||||||
|
@ -42,7 +45,12 @@ icon_cache_update_cache_cb(void *data __UNUSED__)
|
||||||
|
|
||||||
icon_cache_timer = NULL;
|
icon_cache_timer = NULL;
|
||||||
|
|
||||||
if (icon_cache_exe) return ECORE_CALLBACK_CANCEL;
|
if (icon_cache_exe)
|
||||||
|
{
|
||||||
|
icon_queue = EINA_TRUE;
|
||||||
|
return ECORE_CALLBACK_CANCEL;
|
||||||
|
}
|
||||||
|
icon_queue = EINA_FALSE;
|
||||||
if ((!icon_flush) && (!icon_exts)) return ECORE_CALLBACK_CANCEL;
|
if ((!icon_flush) && (!icon_exts)) return ECORE_CALLBACK_CANCEL;
|
||||||
|
|
||||||
/* TODO: Queue if already running */
|
/* TODO: Queue if already running */
|
||||||
|
@ -102,8 +110,12 @@ desktop_cache_update_cache_cb(void *data __UNUSED__)
|
||||||
|
|
||||||
desktop_cache_timer = NULL;
|
desktop_cache_timer = NULL;
|
||||||
|
|
||||||
if (desktop_cache_exe) return ECORE_CALLBACK_CANCEL;
|
if (desktop_cache_exe)
|
||||||
/* TODO: Queue if already running */
|
{
|
||||||
|
desktop_queue = EINA_TRUE;
|
||||||
|
return ECORE_CALLBACK_CANCEL;
|
||||||
|
}
|
||||||
|
desktop_queue = EINA_FALSE;
|
||||||
prio = ecore_exe_run_priority_get();
|
prio = ecore_exe_run_priority_get();
|
||||||
ecore_exe_run_priority_set(19);
|
ecore_exe_run_priority_set(19);
|
||||||
// XXX: use eina_prefix, not hard-coded prefixes
|
// XXX: use eina_prefix, not hard-coded prefixes
|
||||||
|
@ -165,10 +177,12 @@ cache_exe_del_cb(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
if (ev->exe == desktop_cache_exe)
|
if (ev->exe == desktop_cache_exe)
|
||||||
{
|
{
|
||||||
desktop_cache_exe = NULL;
|
desktop_cache_exe = NULL;
|
||||||
|
if (desktop_queue) cache_desktop_update();
|
||||||
}
|
}
|
||||||
else if (ev->exe == icon_cache_exe)
|
else if (ev->exe == icon_cache_exe)
|
||||||
{
|
{
|
||||||
icon_cache_exe = NULL;
|
icon_cache_exe = NULL;
|
||||||
|
if (icon_queue) cache_icon_update(EINA_FALSE);
|
||||||
}
|
}
|
||||||
return ECORE_CALLBACK_RENEW;
|
return ECORE_CALLBACK_RENEW;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,14 @@ static EDBus_Message *
|
||||||
do_register(const EDBus_Service_Interface *ifc __UNUSED__, const EDBus_Message *message)
|
do_register(const EDBus_Service_Interface *ifc __UNUSED__, const EDBus_Message *message)
|
||||||
{
|
{
|
||||||
EDBus_Message *reply;
|
EDBus_Message *reply;
|
||||||
|
const char *lang;
|
||||||
|
|
||||||
|
if (!edbus_message_arguments_get(message, "s", &lang))
|
||||||
|
{
|
||||||
|
ERR("Error getting arguments.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
setenv("LANG", lang, 1);
|
||||||
|
|
||||||
clients++;
|
clients++;
|
||||||
if (shutdown) ecore_timer_del(shutdown);
|
if (shutdown) ecore_timer_del(shutdown);
|
||||||
|
@ -111,6 +119,15 @@ add_icon_dirs(const EDBus_Service_Interface *ifc __UNUSED__, const EDBus_Message
|
||||||
static EDBus_Message *
|
static EDBus_Message *
|
||||||
build_desktop_cache(const EDBus_Service_Interface *ifc __UNUSED__, const EDBus_Message *message __UNUSED__)
|
build_desktop_cache(const EDBus_Service_Interface *ifc __UNUSED__, const EDBus_Message *message __UNUSED__)
|
||||||
{
|
{
|
||||||
|
const char *lang;
|
||||||
|
|
||||||
|
if (!edbus_message_arguments_get(message, "s", &lang))
|
||||||
|
{
|
||||||
|
ERR("Error getting arguments.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
setenv("LANG", lang, 1);
|
||||||
|
|
||||||
cache_desktop_update();
|
cache_desktop_update();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -143,7 +160,7 @@ static const EDBus_Signal signals[] = {
|
||||||
|
|
||||||
static const EDBus_Method methods[] = {
|
static const EDBus_Method methods[] = {
|
||||||
{
|
{
|
||||||
"Register", NULL, EDBUS_ARGS({"b", "cache exists"}),
|
"Register", EDBUS_ARGS({"s", "lang info"}), EDBUS_ARGS({"b", "cache exists"}),
|
||||||
do_register, 0
|
do_register, 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -155,7 +172,7 @@ static const EDBus_Method methods[] = {
|
||||||
add_desktop_dirs, EDBUS_METHOD_FLAG_NOREPLY
|
add_desktop_dirs, EDBUS_METHOD_FLAG_NOREPLY
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"BuildDesktopCache", NULL, NULL,
|
"BuildDesktopCache", EDBUS_ARGS({"s", "lang info"}), NULL,
|
||||||
build_desktop_cache, EDBUS_METHOD_FLAG_NOREPLY
|
build_desktop_cache, EDBUS_METHOD_FLAG_NOREPLY
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,6 +29,7 @@ static int efreet_parsed_locale = 0;
|
||||||
static const char *efreet_lang = NULL;
|
static const char *efreet_lang = NULL;
|
||||||
static const char *efreet_lang_country = NULL;
|
static const char *efreet_lang_country = NULL;
|
||||||
static const char *efreet_lang_modifier = NULL;
|
static const char *efreet_lang_modifier = NULL;
|
||||||
|
static const char *efreet_language = NULL;
|
||||||
static void efreet_parse_locale(void);
|
static void efreet_parse_locale(void);
|
||||||
static int efreet_parse_locale_setting(const char *env);
|
static int efreet_parse_locale_setting(const char *env);
|
||||||
|
|
||||||
|
@ -151,6 +152,7 @@ efreet_shutdown(void)
|
||||||
IF_RELEASE(efreet_lang);
|
IF_RELEASE(efreet_lang);
|
||||||
IF_RELEASE(efreet_lang_country);
|
IF_RELEASE(efreet_lang_country);
|
||||||
IF_RELEASE(efreet_lang_modifier);
|
IF_RELEASE(efreet_lang_modifier);
|
||||||
|
IF_RELEASE(efreet_language);
|
||||||
efreet_parsed_locale = 0; /* reset this in case they init efreet again */
|
efreet_parsed_locale = 0; /* reset this in case they init efreet again */
|
||||||
|
|
||||||
ecore_file_shutdown();
|
ecore_file_shutdown();
|
||||||
|
@ -167,9 +169,11 @@ efreet_lang_reset(void)
|
||||||
IF_RELEASE(efreet_lang);
|
IF_RELEASE(efreet_lang);
|
||||||
IF_RELEASE(efreet_lang_country);
|
IF_RELEASE(efreet_lang_country);
|
||||||
IF_RELEASE(efreet_lang_modifier);
|
IF_RELEASE(efreet_lang_modifier);
|
||||||
|
IF_RELEASE(efreet_language);
|
||||||
efreet_parsed_locale = 0; /* reset this in case they init efreet again */
|
efreet_parsed_locale = 0; /* reset this in case they init efreet again */
|
||||||
|
|
||||||
efreet_dirs_reset();
|
efreet_dirs_reset();
|
||||||
|
efreet_parse_locale();
|
||||||
efreet_cache_desktop_close();
|
efreet_cache_desktop_close();
|
||||||
efreet_cache_desktop_build();
|
efreet_cache_desktop_build();
|
||||||
}
|
}
|
||||||
|
@ -217,6 +221,15 @@ efreet_lang_modifier_get(void)
|
||||||
return efreet_lang_modifier;
|
return efreet_lang_modifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI const char *
|
||||||
|
efreet_language_get(void)
|
||||||
|
{
|
||||||
|
if (efreet_parsed_locale) return efreet_language;
|
||||||
|
|
||||||
|
efreet_parse_locale();
|
||||||
|
return efreet_language;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
* @return Returns no value
|
* @return Returns no value
|
||||||
|
@ -286,6 +299,8 @@ efreet_parse_locale_setting(const char *env)
|
||||||
found = 1;
|
found = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (found)
|
||||||
|
efreet_language = eina_stringshare_add(getenv(env));
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ efreet_cache_init(void)
|
||||||
edbus_proxy_signal_handler_add(proxy, "IconCacheUpdate", icon_cache_update, NULL);
|
edbus_proxy_signal_handler_add(proxy, "IconCacheUpdate", icon_cache_update, NULL);
|
||||||
edbus_proxy_signal_handler_add(proxy, "DesktopCacheUpdate", desktop_cache_update, NULL);
|
edbus_proxy_signal_handler_add(proxy, "DesktopCacheUpdate", desktop_cache_update, NULL);
|
||||||
|
|
||||||
edbus_proxy_call(proxy, "Register", on_send_register, NULL, -1, "");
|
edbus_proxy_call(proxy, "Register", on_send_register, NULL, -1, "s", efreet_language_get());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO: Needed?
|
* TODO: Needed?
|
||||||
|
@ -958,7 +958,8 @@ void
|
||||||
efreet_cache_desktop_build(void)
|
efreet_cache_desktop_build(void)
|
||||||
{
|
{
|
||||||
if (!efreet_cache_update) return;
|
if (!efreet_cache_update) return;
|
||||||
edbus_proxy_call(proxy, "BuildDesktopCache", NULL, NULL, -1, "");
|
if (proxy)
|
||||||
|
edbus_proxy_call(proxy, "BuildDesktopCache", NULL, NULL, -1, "s", efreet_language_get());
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
|
|
@ -192,6 +192,7 @@ void efreet_dirs_reset(void);
|
||||||
const char *efreet_lang_get(void);
|
const char *efreet_lang_get(void);
|
||||||
const char *efreet_lang_country_get(void);
|
const char *efreet_lang_country_get(void);
|
||||||
const char *efreet_lang_modifier_get(void);
|
const char *efreet_lang_modifier_get(void);
|
||||||
|
EAPI const char *efreet_language_get(void);
|
||||||
|
|
||||||
size_t efreet_array_cat(char *buffer, size_t size, const char *strs[]);
|
size_t efreet_array_cat(char *buffer, size_t size, const char *strs[]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue