From 28d0ae8d0e15d146f021042c99b66b8c041b4267 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 22 Aug 2012 11:56:12 +0000 Subject: [PATCH] xkb lauout patch from jeremy! :) SVN revision: 75543 --- AUTHORS | 1 + src/bin/e_xkb.c | 31 ++++++++++++++++++------------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/AUTHORS b/AUTHORS index d93288ec6..85ffc91e4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -35,3 +35,4 @@ Thomas Gstädtner q66 Tom Hacohen (TAsn) Maxime Villard +Jeremy Zurcher diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index 352fbe9ec..473770359 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -48,22 +48,27 @@ e_xkb_update(int cur_group) eina_strbuf_append(buf, ","); } } - eina_strbuf_append(buf, "'"); + eina_strbuf_append(buf, "' -variant '"); + + EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl) + { + if (cl->variant) + { + if (strcmp(cl->variant, "basic")) + eina_strbuf_append(buf, cl->variant); + eina_strbuf_append(buf, ","); + /* workaround xkb bug where basic variants work with ',' at the + * end, but dvorak (and mayby others) don't */ +// if (!strcmp(cl->variant, "basic")) eina_strbuf_append(buf, ","); + } + else + eina_strbuf_append(buf, ","); + } + eina_strbuf_append(buf, "'"); + /* use first entry in used layouts */ cl = e_config->xkb.used_layouts->data; - if ((cl->variant) -/* workaround xkb bug */ - && (!(!strcmp(cl->variant, "basic")))) - { - eina_strbuf_append(buf, " -variant '"); - eina_strbuf_append(buf, cl->variant); - /* workaround xkb bug where basic variants work with ',' at the - * end, but dvorak (and mayby others) don't */ -// if (!strcmp(cl->variant, "basic")) eina_strbuf_append(buf, ","); - eina_strbuf_append(buf, "'"); - } - if (cl->model) { eina_strbuf_append(buf, " -model '");