fix focus loss on window unfocus so keybindings still work
some start on language set/get/list ipc SVN revision: 14548
This commit is contained in:
parent
2eaa1ce1c7
commit
b1422de636
|
@ -1327,7 +1327,11 @@ _e_border_free(E_Border *bd)
|
||||||
e_object_del(E_OBJECT(bd->border_menu));
|
e_object_del(E_OBJECT(bd->border_menu));
|
||||||
bd->border_menu = NULL;
|
bd->border_menu = NULL;
|
||||||
}
|
}
|
||||||
if (focused == bd) focused = NULL;
|
if (focused == bd)
|
||||||
|
{
|
||||||
|
ecore_x_window_focus(bd->container->manager->root);
|
||||||
|
focused = NULL;
|
||||||
|
}
|
||||||
while (bd->handlers)
|
while (bd->handlers)
|
||||||
{
|
{
|
||||||
Ecore_Event_Handler *h;
|
Ecore_Event_Handler *h;
|
||||||
|
|
|
@ -83,6 +83,7 @@ e_config_init(void)
|
||||||
E_CONFIG_VAL(D, T, font_cache, INT);
|
E_CONFIG_VAL(D, T, font_cache, INT);
|
||||||
E_CONFIG_VAL(D, T, zone_desks_x_count, INT);
|
E_CONFIG_VAL(D, T, zone_desks_x_count, INT);
|
||||||
E_CONFIG_VAL(D, T, zone_desks_y_count, INT);
|
E_CONFIG_VAL(D, T, zone_desks_y_count, INT);
|
||||||
|
E_CONFIG_VAL(D, T, language, STR);
|
||||||
E_CONFIG_LIST(D, T, modules, _e_config_module_edd);
|
E_CONFIG_LIST(D, T, modules, _e_config_module_edd);
|
||||||
E_CONFIG_LIST(D, T, font_fallbacks, _e_config_font_fallback_edd);
|
E_CONFIG_LIST(D, T, font_fallbacks, _e_config_font_fallback_edd);
|
||||||
E_CONFIG_LIST(D, T, font_defaults, _e_config_font_default_edd);
|
E_CONFIG_LIST(D, T, font_defaults, _e_config_font_default_edd);
|
||||||
|
@ -106,6 +107,7 @@ e_config_init(void)
|
||||||
e_config->zone_desks_x_count = 4;
|
e_config->zone_desks_x_count = 4;
|
||||||
e_config->zone_desks_y_count = 1;
|
e_config->zone_desks_y_count = 1;
|
||||||
e_config->use_virtual_roots = 0;
|
e_config->use_virtual_roots = 0;
|
||||||
|
e_config->language = strdup("");
|
||||||
{
|
{
|
||||||
E_Config_Module *em;
|
E_Config_Module *em;
|
||||||
|
|
||||||
|
@ -194,6 +196,11 @@ e_config_init(void)
|
||||||
E_CONFIG_LIMIT(e_config->image_cache, 0, 256 * 1024);
|
E_CONFIG_LIMIT(e_config->image_cache, 0, 256 * 1024);
|
||||||
E_CONFIG_LIMIT(e_config->font_cache, 0, 32 * 1024);
|
E_CONFIG_LIMIT(e_config->font_cache, 0, 32 * 1024);
|
||||||
|
|
||||||
|
/* apply config */
|
||||||
|
|
||||||
|
if ((e_config->language) && (strlen(e_config->language) > 0))
|
||||||
|
e_intl_language_set(e_config->language);
|
||||||
|
|
||||||
{
|
{
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
|
|
||||||
|
@ -258,6 +265,7 @@ e_config_shutdown(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
E_FREE(e_config->desktop_default_background);
|
E_FREE(e_config->desktop_default_background);
|
||||||
|
E_FREE(e_config->language);
|
||||||
E_FREE(e_config);
|
E_FREE(e_config);
|
||||||
}
|
}
|
||||||
E_CONFIG_DD_FREE(_e_config_edd);
|
E_CONFIG_DD_FREE(_e_config_edd);
|
||||||
|
|
|
@ -55,6 +55,7 @@ struct _E_Config
|
||||||
int zone_desks_x_count;
|
int zone_desks_x_count;
|
||||||
int zone_desks_y_count;
|
int zone_desks_y_count;
|
||||||
int use_virtual_roots;
|
int use_virtual_roots;
|
||||||
|
char *language;
|
||||||
Evas_List *modules;
|
Evas_List *modules;
|
||||||
Evas_List *font_fallbacks;
|
Evas_List *font_fallbacks;
|
||||||
Evas_List *font_defaults;
|
Evas_List *font_defaults;
|
||||||
|
|
115
src/bin/e_ipc.c
115
src/bin/e_ipc.c
|
@ -5,6 +5,7 @@ static int _e_ipc_cb_client_add(void *data, int type, void *event);
|
||||||
static int _e_ipc_cb_client_del(void *data, int type, void *event);
|
static int _e_ipc_cb_client_del(void *data, int type, void *event);
|
||||||
static int _e_ipc_cb_client_data(void *data, int type, void *event);
|
static int _e_ipc_cb_client_data(void *data, int type, void *event);
|
||||||
static char *_e_ipc_path_str_get(char **paths, int *bytes);
|
static char *_e_ipc_path_str_get(char **paths, int *bytes);
|
||||||
|
static char *_e_ipc_str_list_get(Evas_List *strs, int *bytes);
|
||||||
static char *_e_ipc_simple_str_dec(char *data, int bytes);
|
static char *_e_ipc_simple_str_dec(char *data, int bytes);
|
||||||
static char **_e_ipc_multi_str_dec(char *data, int bytes, int str_count);
|
static char **_e_ipc_multi_str_dec(char *data, int bytes, int str_count);
|
||||||
|
|
||||||
|
@ -14,6 +15,7 @@ ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_available_list_enc);
|
||||||
ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_fallback_list_enc);
|
ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_fallback_list_enc);
|
||||||
ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_default_list_enc);
|
ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_default_list_enc);
|
||||||
ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_font_default_enc);
|
ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_font_default_enc);
|
||||||
|
//ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_string_list_enc);
|
||||||
|
|
||||||
/* local subsystem globals */
|
/* local subsystem globals */
|
||||||
static Ecore_Ipc_Server *_e_ipc_server = NULL;
|
static Ecore_Ipc_Server *_e_ipc_server = NULL;
|
||||||
|
@ -213,9 +215,9 @@ _e_ipc_cb_client_data(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
case E_IPC_OP_BG_GET:
|
case E_IPC_OP_BG_GET:
|
||||||
{
|
{
|
||||||
char *bg;
|
char *bg;
|
||||||
|
|
||||||
bg = e_config->desktop_default_background;
|
bg = e_config->desktop_default_background;
|
||||||
if (!bg)
|
if (!bg) bg = "";
|
||||||
bg = "";
|
|
||||||
ecore_ipc_client_send(e->client,
|
ecore_ipc_client_send(e->client,
|
||||||
E_IPC_DOMAIN_REPLY,
|
E_IPC_DOMAIN_REPLY,
|
||||||
E_IPC_OP_BG_GET_REPLY,
|
E_IPC_OP_BG_GET_REPLY,
|
||||||
|
@ -328,7 +330,7 @@ _e_ipc_cb_client_data(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
int bytes;
|
int bytes;
|
||||||
|
|
||||||
text_class = _e_ipc_simple_str_dec(e->data, e->size);
|
text_class = _e_ipc_simple_str_dec(e->data, e->size);
|
||||||
efd = e_font_default_get (text_class);
|
efd = e_font_default_get(text_class);
|
||||||
free(text_class);
|
free(text_class);
|
||||||
data = _e_ipc_font_default_enc(efd, &bytes);
|
data = _e_ipc_font_default_enc(efd, &bytes);
|
||||||
ecore_ipc_client_send(e->client,
|
ecore_ipc_client_send(e->client,
|
||||||
|
@ -399,6 +401,45 @@ _e_ipc_cb_client_data(void *data __UNUSED__, int type __UNUSED__, void *event)
|
||||||
ecore_main_loop_quit();
|
ecore_main_loop_quit();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case E_IPC_OP_LANG_LIST:
|
||||||
|
{
|
||||||
|
Evas_List *langs;
|
||||||
|
int bytes;
|
||||||
|
char *data;
|
||||||
|
|
||||||
|
langs = (Evas_List *)e_intl_language_list();
|
||||||
|
data = _e_ipc_str_list_get(langs, &bytes);
|
||||||
|
ecore_ipc_client_send(e->client,
|
||||||
|
E_IPC_DOMAIN_REPLY,
|
||||||
|
E_IPC_OP_LANG_LIST_REPLY,
|
||||||
|
0/*ref*/, 0/*ref_to*/, 0/*response*/,
|
||||||
|
data, bytes);
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
case E_IPC_OP_LANG_SET:
|
||||||
|
{
|
||||||
|
char *lang;
|
||||||
|
|
||||||
|
lang = _e_ipc_simple_str_dec(e->data, e->size);
|
||||||
|
IF_FREE(e_config->language);
|
||||||
|
e_config->language = lang;
|
||||||
|
e_intl_language_set(e_config->language);
|
||||||
|
e_config_save_queue();
|
||||||
|
}
|
||||||
|
case E_IPC_OP_LANG_GET:
|
||||||
|
{
|
||||||
|
char *lang;
|
||||||
|
|
||||||
|
lang = e_config->language;
|
||||||
|
if (!lang) lang = "";
|
||||||
|
ecore_ipc_client_send(e->client,
|
||||||
|
E_IPC_DOMAIN_REPLY,
|
||||||
|
E_IPC_OP_LANG_GET_REPLY,
|
||||||
|
0/*ref*/, 0/*ref_to*/, 0/*response*/,
|
||||||
|
lang, strlen(lang) + 1);
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -444,6 +485,30 @@ _e_ipc_path_str_get(char **paths, int *bytes)
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
_e_ipc_str_list_get(Evas_List *strs, int *bytes)
|
||||||
|
{
|
||||||
|
char *data = NULL, **cur;
|
||||||
|
int pos = 0;
|
||||||
|
Evas_List *l;
|
||||||
|
|
||||||
|
*bytes = 0;
|
||||||
|
for (l = strs; l; l = l->next)
|
||||||
|
{
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
p = l->data;
|
||||||
|
|
||||||
|
*bytes += strlen(p) + 1;
|
||||||
|
data = realloc(data, *bytes);
|
||||||
|
|
||||||
|
memcpy(data + pos, p, strlen(p));
|
||||||
|
pos = *bytes;
|
||||||
|
data[pos - 1] = 0;
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decode a simple string that was passed by an IPC client
|
* Decode a simple string that was passed by an IPC client
|
||||||
*
|
*
|
||||||
|
@ -452,13 +517,13 @@ _e_ipc_path_str_get(char **paths, int *bytes)
|
||||||
static char *
|
static char *
|
||||||
_e_ipc_simple_str_dec(char *data, int bytes)
|
_e_ipc_simple_str_dec(char *data, int bytes)
|
||||||
{
|
{
|
||||||
char *str;
|
char *str;
|
||||||
|
|
||||||
str = malloc(bytes + 1);
|
str = malloc(bytes + 1);
|
||||||
str[bytes] = 0;
|
str[bytes] = 0;
|
||||||
memcpy(str, data, bytes);
|
memcpy(str, data, bytes);
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -472,23 +537,22 @@ _e_ipc_simple_str_dec(char *data, int bytes)
|
||||||
static char **
|
static char **
|
||||||
_e_ipc_multi_str_dec(char *data, int bytes, int str_count)
|
_e_ipc_multi_str_dec(char *data, int bytes, int str_count)
|
||||||
{
|
{
|
||||||
char ** str_array;
|
char **str_array;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Make sure our data is packed for us <str>0<str>0 */
|
/* Make sure our data is packed for us <str>0<str>0 */
|
||||||
if( data[bytes - 1] != 0) {
|
if (data[bytes - 1] != 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
|
||||||
|
|
||||||
str_array = malloc(sizeof(char *)*str_count);
|
str_array = malloc(sizeof(char *) * str_count);
|
||||||
|
|
||||||
for(i = 0; i < str_count; i++)
|
for (i = 0; i < str_count; i++)
|
||||||
{
|
{
|
||||||
str_array[i] = data;
|
str_array[i] = data;
|
||||||
data += strlen(str_array[i]) + 1;
|
data += strlen(str_array[i]) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return str_array;
|
return str_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -556,3 +620,16 @@ ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_font_default_enc)
|
||||||
ECORE_IPC_PUT32(size);
|
ECORE_IPC_PUT32(size);
|
||||||
ECORE_IPC_ENC_STRUCT_FOOT();
|
ECORE_IPC_ENC_STRUCT_FOOT();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_string_list_enc)
|
||||||
|
{
|
||||||
|
ECORE_IPC_ENC_EVAS_LIST_HEAD_START(E_String);
|
||||||
|
ECORE_IPC_CNTS(str);
|
||||||
|
ECORE_IPC_ENC_EVAS_LIST_HEAD_FINISH();
|
||||||
|
int l1;
|
||||||
|
ECORE_IPC_SLEN(l1, str);
|
||||||
|
ECORE_IPC_PUTS(str, l1);
|
||||||
|
ECORE_IPC_ENC_EVAS_LIST_FOOT();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
|
@ -44,6 +44,11 @@ typedef enum _E_Ipc_Op {
|
||||||
E_IPC_OP_FONT_DEFAULT_LIST_REPLY,
|
E_IPC_OP_FONT_DEFAULT_LIST_REPLY,
|
||||||
E_IPC_OP_RESTART,
|
E_IPC_OP_RESTART,
|
||||||
E_IPC_OP_SHUTDOWN,
|
E_IPC_OP_SHUTDOWN,
|
||||||
|
E_IPC_OP_LANG_LIST,
|
||||||
|
E_IPC_OP_LANG_LIST_REPLY,
|
||||||
|
E_IPC_OP_LANG_SET,
|
||||||
|
E_IPC_OP_LANG_GET,
|
||||||
|
E_IPC_OP_LANG_GET_REPLY,
|
||||||
E_IPC_OP_LAST
|
E_IPC_OP_LAST
|
||||||
} E_Ipc_Op;
|
} E_Ipc_Op;
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,10 @@ E_IPC_Opt_Handler handlers[] =
|
||||||
OREQ("-font-default-list", "List all configured text classes", E_IPC_OP_FONT_DEFAULT_LIST, 1),
|
OREQ("-font-default-list", "List all configured text classes", E_IPC_OP_FONT_DEFAULT_LIST, 1),
|
||||||
OMUL("-font-default-set", "Set textclass (OPT1) font (OPT2) and size (OPT3)", E_IPC_OP_FONT_DEFAULT_SET, 0, 3),
|
OMUL("-font-default-set", "Set textclass (OPT1) font (OPT2) and size (OPT3)", E_IPC_OP_FONT_DEFAULT_SET, 0, 3),
|
||||||
OREQ("-restart", "Restart E17", E_IPC_OP_RESTART, 0),
|
OREQ("-restart", "Restart E17", E_IPC_OP_RESTART, 0),
|
||||||
OREQ("-shutdown", "Shutdown E17", E_IPC_OP_SHUTDOWN, 0)
|
OREQ("-shutdown", "Shutdown E17", E_IPC_OP_SHUTDOWN, 0),
|
||||||
|
OREQ("-lang-get", "Get the current language", E_IPC_OP_LANG_GET, 1),
|
||||||
|
OREQ("-lang-list", "List all available languages", E_IPC_OP_LANG_LIST, 1),
|
||||||
|
OSTR("-lang-set", "Set the current language", E_IPC_OP_LANG_SET, 0)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* externally accessible functions */
|
/* externally accessible functions */
|
||||||
|
@ -338,7 +341,7 @@ _e_ipc_cb_server_data(void *data, int type, void *event)
|
||||||
else
|
else
|
||||||
printf("REPLY: MODULE NONE\n");
|
printf("REPLY: MODULE NONE\n");
|
||||||
break;
|
break;
|
||||||
case E_IPC_OP_MODULE_DIRS_LIST_REPLY:
|
case E_IPC_OP_MODULE_DIRS_LIST_REPLY:
|
||||||
if (e->data)
|
if (e->data)
|
||||||
{
|
{
|
||||||
char *p;
|
char *p;
|
||||||
|
@ -353,29 +356,29 @@ _e_ipc_cb_server_data(void *data, int type, void *event)
|
||||||
p += strlen(dir) + 1;
|
p += strlen(dir) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case E_IPC_OP_BG_GET_REPLY:
|
case E_IPC_OP_BG_GET_REPLY:
|
||||||
if (e->data)
|
if (e->data)
|
||||||
{
|
{
|
||||||
printf("REPLY: %s\n", e->data);
|
printf("REPLY: %s\n", e->data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case E_IPC_OP_BG_DIRS_LIST_REPLY:
|
case E_IPC_OP_BG_DIRS_LIST_REPLY:
|
||||||
if (e->data)
|
if (e->data)
|
||||||
{
|
{
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
p = e->data;
|
p = e->data;
|
||||||
while (p < (char *)(e->data + e->size))
|
while (p < (char *)(e->data + e->size))
|
||||||
{
|
{
|
||||||
char *dir;
|
char *dir;
|
||||||
|
|
||||||
dir = p;
|
dir = p;
|
||||||
printf("REPLY: BG DIR=%s\n", dir);
|
printf("REPLY: BG DIR=%s\n", dir);
|
||||||
p += strlen(dir) + 1;
|
p += strlen(dir) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case E_IPC_OP_FONT_FALLBACK_LIST_REPLY:
|
case E_IPC_OP_FONT_FALLBACK_LIST_REPLY:
|
||||||
if (e->data)
|
if (e->data)
|
||||||
{
|
{
|
||||||
|
@ -384,12 +387,12 @@ _e_ipc_cb_server_data(void *data, int type, void *event)
|
||||||
|
|
||||||
fallbacks = _e_ipc_font_fallback_list_dec(e->data, e->size);
|
fallbacks = _e_ipc_font_fallback_list_dec(e->data, e->size);
|
||||||
while(fallbacks)
|
while(fallbacks)
|
||||||
{
|
{
|
||||||
eff = fallbacks->data;
|
eff = fallbacks->data;
|
||||||
printf("REPLY: FALLBACK NAME=\"%s\"\n", eff->name);
|
printf("REPLY: FALLBACK NAME=\"%s\"\n", eff->name);
|
||||||
fallbacks = evas_list_remove_list(fallbacks, fallbacks);
|
fallbacks = evas_list_remove_list(fallbacks, fallbacks);
|
||||||
E_FREE(eff);
|
E_FREE(eff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
printf("REPLY: FALLBACK NONE\n");
|
printf("REPLY: FALLBACK NONE\n");
|
||||||
|
@ -402,12 +405,12 @@ _e_ipc_cb_server_data(void *data, int type, void *event)
|
||||||
|
|
||||||
available = _e_ipc_font_available_list_dec(e->data, e->size);
|
available = _e_ipc_font_available_list_dec(e->data, e->size);
|
||||||
while(available)
|
while(available)
|
||||||
{
|
{
|
||||||
fa = available->data;
|
fa = available->data;
|
||||||
printf("REPLY: AVAILABLE NAME=\"%s\"\n", fa->name);
|
printf("REPLY: AVAILABLE NAME=\"%s\"\n", fa->name);
|
||||||
available = evas_list_remove_list(available, available);
|
available = evas_list_remove_list(available, available);
|
||||||
E_FREE(fa);
|
E_FREE(fa);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
printf("REPLY: AVAILABLE NONE\n");
|
printf("REPLY: AVAILABLE NONE\n");
|
||||||
|
@ -418,7 +421,7 @@ _e_ipc_cb_server_data(void *data, int type, void *event)
|
||||||
E_Font_Default efd;
|
E_Font_Default efd;
|
||||||
_e_ipc_font_default_dec(e->data, e->size, &efd);
|
_e_ipc_font_default_dec(e->data, e->size, &efd);
|
||||||
printf("REPLY: DEFAULT TEXT_CLASS=\"%s\" NAME=\"%s\" SIZE=%d\n",
|
printf("REPLY: DEFAULT TEXT_CLASS=\"%s\" NAME=\"%s\" SIZE=%d\n",
|
||||||
efd.text_class, efd.font, efd.size);
|
efd.text_class, efd.font, efd.size);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
printf("REPLY: DEFAULT NONE\n");
|
printf("REPLY: DEFAULT NONE\n");
|
||||||
|
@ -432,9 +435,9 @@ _e_ipc_cb_server_data(void *data, int type, void *event)
|
||||||
defaults = _e_ipc_font_default_list_dec(e->data, e->size);
|
defaults = _e_ipc_font_default_list_dec(e->data, e->size);
|
||||||
while(defaults)
|
while(defaults)
|
||||||
{
|
{
|
||||||
efd = defaults->data;
|
efd = defaults->data;
|
||||||
printf("REPLY: DEFAULT TEXT_CLASS=\"%s\" NAME=\"%s\" SIZE=%d\n",
|
printf("REPLY: DEFAULT TEXT_CLASS=\"%s\" NAME=\"%s\" SIZE=%d\n",
|
||||||
efd->text_class, efd->font, efd->size);
|
efd->text_class, efd->font, efd->size);
|
||||||
defaults = evas_list_remove_list(defaults, defaults);
|
defaults = evas_list_remove_list(defaults, defaults);
|
||||||
E_FREE(efd);
|
E_FREE(efd);
|
||||||
}
|
}
|
||||||
|
@ -442,6 +445,13 @@ _e_ipc_cb_server_data(void *data, int type, void *event)
|
||||||
else
|
else
|
||||||
printf("REPLY: DEFAULT NONE\n");
|
printf("REPLY: DEFAULT NONE\n");
|
||||||
break;
|
break;
|
||||||
|
case E_IPC_OP_LANG_LIST_REPLY:
|
||||||
|
if (e->data)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("REPLY: AVAILABLE NONE\n");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue