Updating branch refs/heads/master to f80ece9da08f15efd5d1e5f2c78e400664707ed6 (commit) from c158d3f5514e4f7ca1c69f76f3abeb3bd05a6ee8 (commit)
commit f80ece9da08f15efd5d1e5f2c78e400664707ed6 Author: Azamat H. Hackimov <azamat.hacki...@gmail.com> Date: Sat Jan 7 04:23:56 2012 +0600 Fix error with incorrect handling variants (bug #8255 by Ivan Romanov) ChangeLog | 6 +++++- configure.in.in | 2 +- panel-plugin/xkb-config.c | 21 ++++++++++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6bc3971..d7b5e93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ +2012-01-07 04:18 winterheart + * New version 0.5.4.3 + * Fix error with incorrect handling variants (bug #8255 by Ivan Romanov) + 2011-11-04 20:42 winterheart - * Text size on icon is noew adjustable (bug #6703 by Rinat) + * Text size on icon is now adjustable (bug #6703 by Rinat) * New flag: Cambodia (request from Janne Snabb) 2011-10-15 18:54 winterheart diff --git a/configure.in.in b/configure.in.in index 0dfebd2..35d88e9 100644 --- a/configure.in.in +++ b/configure.in.in @@ -19,7 +19,7 @@ m4_define([xkb_version], [xkb_version_major().xkb_version_minor().xkb_version_mi dnl *************************** dnl *** Initialize autoconf *** dnl *************************** -AC_COPYRIGHT([Copyright (c) 2006-2011 +AC_COPYRIGHT([Copyright (c) 2006-2012 The Xfce development team. All rights reserved.]) AC_INIT([xfce4-xkb-plugin], [xkb_version], [http://bugzilla.xfce.org/], [xfce4-xkb-plugin]) AC_PREREQ([2.50]) diff --git a/panel-plugin/xkb-config.c b/panel-plugin/xkb-config.c index 22f771d..2c5af77 100644 --- a/panel-plugin/xkb-config.c +++ b/panel-plugin/xkb-config.c @@ -314,8 +314,27 @@ xkb_config_update_settings (t_xkb_settings *settings) settings->kbd_config->model = g_strdup (config->config_rec->model); g_free (settings->kbd_config->layouts); settings->kbd_config->layouts = g_strjoinv (",", config->config_rec->layouts); + + /* XklConfigRec uses for NULL for empty variant instead of "". + * So if has skipped variants we can't get proper settings->kbd_config->variants. + * So I use this hack to get proper kbd_config->variants */ + gchar *tmp1 = g_strdup(""); + gchar *tmp2 = NULL; + int i; + for (i = 0; config->config_rec->layouts[i]; i++) + { + tmp2 = g_strconcat (tmp1, config->config_rec->variants[i] ? config->config_rec->variants[i] : "", NULL); + g_free(tmp1); + tmp1 = tmp2; + if (config->config_rec->layouts[i + 1]) + { + tmp2 = g_strconcat (tmp1, ",", NULL); + g_free(tmp1); + tmp1 = tmp2; + } + } g_free (settings->kbd_config->variants); - settings->kbd_config->variants = g_strjoinv (",", config->config_rec->variants); + settings->kbd_config->variants = tmp2; } else { _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits