next/prev xkb layout switch actions now properly set the current/selected kbd layout name
SVN revision: 77369
This commit is contained in:
parent
0f5cd63f5a
commit
0521c799fa
|
@ -112,9 +112,18 @@ e_xkb_update(int cur_group)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_xkb_layout_next(void)
|
e_xkb_layout_next(void)
|
||||||
{
|
{
|
||||||
int nb_groups = eina_list_count(e_config->xkb.used_layouts);
|
Eina_List *l;
|
||||||
|
E_Config_XKB_Layout *cl;
|
||||||
|
|
||||||
e_config->xkb.cur_group = (e_config->xkb.cur_group + 1) % nb_groups;
|
l = eina_list_nth_list(e_config->xkb.used_layouts, e_config->xkb.cur_group);
|
||||||
|
l = eina_list_next(l);
|
||||||
|
if (!l) l = e_config->xkb.used_layouts;
|
||||||
|
|
||||||
|
e_config->xkb.cur_group = (e_config->xkb.cur_group + 1) % eina_list_count(e_config->xkb.used_layouts);
|
||||||
|
cl = eina_list_data_get(l);
|
||||||
|
eina_stringshare_replace(&e_config->xkb.cur_layout, cl->name);
|
||||||
|
eina_stringshare_replace(&e_config->xkb.selected_layout, cl->name);
|
||||||
|
INF("Setting keyboard layout: %s", cl->name);
|
||||||
e_xkb_update(e_config->xkb.cur_group);
|
e_xkb_update(e_config->xkb.cur_group);
|
||||||
_e_xkb_update_event(e_config->xkb.cur_group);
|
_e_xkb_update_event(e_config->xkb.cur_group);
|
||||||
e_config_save_queue();
|
e_config_save_queue();
|
||||||
|
@ -123,10 +132,19 @@ e_xkb_layout_next(void)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_xkb_layout_prev(void)
|
e_xkb_layout_prev(void)
|
||||||
{
|
{
|
||||||
int nb_groups = eina_list_count(e_config->xkb.used_layouts);
|
Eina_List *l;
|
||||||
|
E_Config_XKB_Layout *cl;
|
||||||
|
|
||||||
|
l = eina_list_nth_list(e_config->xkb.used_layouts, e_config->xkb.cur_group);
|
||||||
|
l = eina_list_prev(l);
|
||||||
|
if (!l) l = eina_list_last(e_config->xkb.used_layouts);
|
||||||
|
|
||||||
e_config->xkb.cur_group = (e_config->xkb.cur_group == 0) ?
|
e_config->xkb.cur_group = (e_config->xkb.cur_group == 0) ?
|
||||||
(nb_groups - 1) : (e_config->xkb.cur_group - 1);
|
((int)eina_list_count(e_config->xkb.used_layouts) - 1) : (e_config->xkb.cur_group - 1);
|
||||||
|
cl = eina_list_data_get(l);
|
||||||
|
eina_stringshare_replace(&e_config->xkb.cur_layout, cl->name);
|
||||||
|
eina_stringshare_replace(&e_config->xkb.selected_layout, cl->name);
|
||||||
|
INF("Setting keyboard layout: %s", cl->name);
|
||||||
e_xkb_update(e_config->xkb.cur_group);
|
e_xkb_update(e_config->xkb.cur_group);
|
||||||
_e_xkb_update_event(e_config->xkb.cur_group);
|
_e_xkb_update_event(e_config->xkb.cur_group);
|
||||||
e_config_save_queue();
|
e_config_save_queue();
|
||||||
|
|
Loading…
Reference in New Issue