simplify some xkb updating
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 10 Oct 2012 08:45:43 +0000 (08:45 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 10 Oct 2012 08:45:43 +0000 (08:45 +0000)
SVN revision: 77725

src/modules/xkbswitch/e_mod_main.c

index 17e629b7988bec6ec8c2dcfbdf37e8b6156bd6df..faca25ba78894c267897ff039131189ba7f44bec 100644 (file)
@@ -138,17 +138,15 @@ _xkb_update_icon(int cur_group)
    Eina_List *l;
    E_Config_XKB_Layout *layout;
    const char *name = NULL;
-   int grp = -1;
 
    EINA_SAFETY_ON_NULL_RETURN(e_config->xkb.used_layouts);
    //INF("ui: %d", cur_group);
-   EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, layout)
-     {
-        grp++;
-        if (cur_group == grp) name = layout->name;
-     }
-
-   if ((name) && (strchr(name, '/'))) name = strchr(name, '/') + 1;
+   layout = eina_list_nth(e_config->xkb.used_layouts, cur_group);
+   if (layout) name = layout->name;
+   EINA_SAFETY_ON_NULL_RETURN(name);
+   if (strchr(name, '/')) name = strchr(name, '/') + 1;
+   if (e_config->xkb.cur_layout != name)
+     eina_stringshare_replace(&e_config->xkb.cur_layout, name);
 
    if (e_config->xkb.only_label)
      {