[Goodies-commits] r6640 - xfce4-xkb-plugin/trunk/panel-plugin

Alexander Iliev sasoiliev at xfce.org
Tue Feb 3 23:29:47 CET 2009


Author: sasoiliev
Date: 2009-02-03 22:29:47 +0000 (Tue, 03 Feb 2009)
New Revision: 6640

Modified:
   xfce4-xkb-plugin/trunk/panel-plugin/xfce4-xkb-plugin.c
   xfce4-xkb-plugin/trunk/panel-plugin/xkb-config.c
   xfce4-xkb-plugin/trunk/panel-plugin/xkb-settings-dialog.c
Log:
Added an option to not select the compose key position - bugzilla #4895



Modified: xfce4-xkb-plugin/trunk/panel-plugin/xfce4-xkb-plugin.c
===================================================================
--- xfce4-xkb-plugin/trunk/panel-plugin/xfce4-xkb-plugin.c	2009-02-03 22:03:02 UTC (rev 6639)
+++ xfce4-xkb-plugin/trunk/panel-plugin/xfce4-xkb-plugin.c	2009-02-03 22:29:47 UTC (rev 6640)
@@ -269,7 +269,9 @@
         xfce_rc_write_entry (rcfile, "layouts", xkb->settings->kbd_config->layouts);
         xfce_rc_write_entry (rcfile, "variants", xkb->settings->kbd_config->variants);
         xfce_rc_write_entry (rcfile, "toggle_option", xkb->settings->kbd_config->toggle_option);
-        xfce_rc_write_entry (rcfile, "compose_key_position", xkb->settings->kbd_config->compose_key_position);
+        if (xkb->settings->kbd_config->compose_key_position == NULL)
+            xfce_rc_write_entry (rcfile, "compose_key_position", "");
+        else xfce_rc_write_entry (rcfile, "compose_key_position", xkb->settings->kbd_config->compose_key_position);
     }
 
     xfce_rc_close (rcfile);

Modified: xfce4-xkb-plugin/trunk/panel-plugin/xkb-config.c
===================================================================
--- xfce4-xkb-plugin/trunk/panel-plugin/xkb-config.c	2009-02-03 22:03:02 UTC (rev 6639)
+++ xfce4-xkb-plugin/trunk/panel-plugin/xkb-config.c	2009-02-03 22:29:47 UTC (rev 6640)
@@ -288,7 +288,8 @@
         config->config_rec->variants = g_strsplit_set (settings->kbd_config->variants, ",", 0);
 
         options = g_strdup (settings->kbd_config->toggle_option);
-        if (strlen (settings->kbd_config->compose_key_position) > 0)
+        if (settings->kbd_config->compose_key_position
+                && strlen (settings->kbd_config->compose_key_position) > 0)
         {
             gchar *tmp = options;
             options = g_strconcat (options, ",", settings->kbd_config->compose_key_position, NULL);
@@ -300,6 +301,8 @@
     /* select the first "grp" option and use it (should be fixed to support more options) */
     g_free (settings->kbd_config->toggle_option);
     settings->kbd_config->toggle_option = NULL;
+    g_free (settings->kbd_config->compose_key_position);
+    settings->kbd_config->compose_key_position = NULL;
     opt = config->config_rec->options;
     while (opt && *opt)
     {

Modified: xfce4-xkb-plugin/trunk/panel-plugin/xkb-settings-dialog.c
===================================================================
--- xfce4-xkb-plugin/trunk/panel-plugin/xkb-settings-dialog.c	2009-02-03 22:03:02 UTC (rev 6639)
+++ xfce4-xkb-plugin/trunk/panel-plugin/xkb-settings-dialog.c	2009-02-03 22:29:47 UTC (rev 6640)
@@ -139,10 +139,20 @@
 }
 
 static void
-xkb_settings_add_combo_key_position_options_to_list (XklConfigRegistry * config_registry,
+xkb_settings_add_compose_key_position_options_to_list (XklConfigRegistry * config_registry,
                                                      XklConfigItem * config_item,
                                                      t_xkb *xkb)
 {
+    /* add a possibility to set no position for the compose key */
+    if (config_item == NULL)
+    {
+        gtk_list_store_append (xkb->compose_key_options_store, &iter);
+        gtk_list_store_set (xkb->compose_key_options_store, &iter,
+                            DESC, "-",
+                            NOM, "", -1);
+        return;
+    }
+
     char *utf_option_name = xci_desc_to_utf8 (config_item);
     gtk_list_store_append (xkb->compose_key_options_store, &iter);
     gtk_list_store_set (xkb->compose_key_options_store, &iter,
@@ -206,12 +216,17 @@
 
     t_xkb_kbd_config *config = xkb->settings->kbd_config;
 
+    model = GTK_TREE_MODEL (xkb->compose_key_options_store);
+    gtk_tree_model_get_iter_first (model, &iter);
+    gtk_tree_model_get (model, &iter, NOM, &id, -1);
+
     if (config->compose_key_position == NULL)
+    {
+        /* select the empty option if compose_key_position is null */
+        gtk_combo_box_set_active_iter (GTK_COMBO_BOX (xkb->compose_key_options_combo), &iter);
         return;
+    }
 
-    model = GTK_TREE_MODEL (xkb->compose_key_options_store);
-    gtk_tree_model_get_iter_first (model, &iter);
-    gtk_tree_model_get (model, &iter, NOM, &id, -1);
     if (strcmp (id, config->compose_key_position) == 0)
     {
         gtk_combo_box_set_active_iter (GTK_COMBO_BOX (xkb->compose_key_options_combo), &iter);
@@ -512,9 +527,10 @@
     xfce_framebox_add (XFCE_FRAMEBOX (frame), xkb->compose_key_options_combo);
     gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (xkb->compose_key_options_combo), renderer, TRUE);
     gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (xkb->compose_key_options_combo), renderer, "text", 0);
+    xkb_settings_add_compose_key_position_options_to_list (NULL, NULL, xkb);
     xkl_config_registry_foreach_option (registry,
                                         "Compose key",
-                                        (ConfigItemProcessFunc) xkb_settings_add_combo_key_position_options_to_list,
+                                        (ConfigItemProcessFunc) xkb_settings_add_compose_key_position_options_to_list,
                                         xkb);
     gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (xkb->compose_key_options_store),
                                           0, GTK_SORT_ASCENDING);
@@ -818,7 +834,10 @@
     {
         gtk_tree_model_get (model, &iter, NOM, &compose_key_position, -1);
         g_free (kbd_config->compose_key_position);
-        kbd_config->compose_key_position = g_strdup (compose_key_position);
+        if (strcmp ("", compose_key_position) == 0)
+            kbd_config->compose_key_position = NULL;
+        else kbd_config->compose_key_position = g_strdup (compose_key_position);
+
     }
 
     model = GTK_TREE_MODEL (xkb->layout_store);




More information about the Goodies-commits mailing list