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

Alexander Iliev sasoiliev at xfce.org
Fri Mar 6 14:10:35 CET 2009


Author: sasoiliev
Date: 2009-03-06 13:10:34 +0000 (Fri, 06 Mar 2009)
New Revision: 6853

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 key combination to change layout



Modified: xfce4-xkb-plugin/trunk/panel-plugin/xfce4-xkb-plugin.c
===================================================================
--- xfce4-xkb-plugin/trunk/panel-plugin/xfce4-xkb-plugin.c	2009-03-06 00:00:37 UTC (rev 6852)
+++ xfce4-xkb-plugin/trunk/panel-plugin/xfce4-xkb-plugin.c	2009-03-06 13:10:34 UTC (rev 6853)
@@ -268,7 +268,11 @@
         xfce_rc_write_entry (rcfile, "model", xkb->settings->kbd_config->model);
         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);
+
+        if (xkb->settings->kbd_config->toggle_option == NULL)
+            xfce_rc_write_entry (rcfile, "toggle_option", "");
+        else xfce_rc_write_entry (rcfile, "toggle_option", xkb->settings->kbd_config->toggle_option);
+
         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);

Modified: xfce4-xkb-plugin/trunk/panel-plugin/xkb-config.c
===================================================================
--- xfce4-xkb-plugin/trunk/panel-plugin/xkb-config.c	2009-03-06 00:00:37 UTC (rev 6852)
+++ xfce4-xkb-plugin/trunk/panel-plugin/xkb-config.c	2009-03-06 13:10:34 UTC (rev 6853)
@@ -287,7 +287,11 @@
         config->config_rec->layouts = g_strsplit_set (settings->kbd_config->layouts, ",", 0);
         config->config_rec->variants = g_strsplit_set (settings->kbd_config->variants, ",", 0);
 
-        options = g_strdup (settings->kbd_config->toggle_option);
+        if (settings->kbd_config->toggle_option
+                && strlen (settings->kbd_config->toggle_option) > 0)
+            options = g_strdup (settings->kbd_config->toggle_option);
+        else options = "";
+
         if (settings->kbd_config->compose_key_position
                 && strlen (settings->kbd_config->compose_key_position) > 0)
         {

Modified: xfce4-xkb-plugin/trunk/panel-plugin/xkb-settings-dialog.c
===================================================================
--- xfce4-xkb-plugin/trunk/panel-plugin/xkb-settings-dialog.c	2009-03-06 00:00:37 UTC (rev 6852)
+++ xfce4-xkb-plugin/trunk/panel-plugin/xkb-settings-dialog.c	2009-03-06 13:10:34 UTC (rev 6853)
@@ -130,6 +130,16 @@
                                          XklConfigItem * config_item,
                                          t_xkb *xkb)
 {
+    /* add a possibility to set no toggle layout combination */
+    if (config_item == NULL)
+    {
+        gtk_list_store_append (xkb->toggle_options_store, &iter);
+        gtk_list_store_set (xkb->toggle_options_store, &iter,
+                            DESC, "-",
+                            NOM, "", -1);
+        return;
+    }
+
     char *utf_option_name = xci_desc_to_utf8 (config_item);
     gtk_list_store_append (xkb->toggle_options_store, &iter);
     gtk_list_store_set (xkb->toggle_options_store, &iter, 
@@ -181,13 +191,16 @@
 
     t_xkb_kbd_config *config = xkb->settings->kbd_config;
 
-    /* dirty insurance hack */
+    model = GTK_TREE_MODEL (xkb->toggle_options_store);
+    gtk_tree_model_get_iter_first (model, &iter);
+    gtk_tree_model_get (model, &iter, NOM, &id, -1);
+
     if (config->toggle_option == NULL)
+    {
+        gtk_combo_box_set_active_iter (GTK_COMBO_BOX (xkb->toggle_options_combo), &iter);
         return;
+    }
 
-    model = GTK_TREE_MODEL (xkb->toggle_options_store);
-    gtk_tree_model_get_iter_first (model, &iter);
-    gtk_tree_model_get (model, &iter, NOM, &id, -1);
     if (strcmp (id, config->toggle_option) == 0 )
     {
         gtk_combo_box_set_active_iter (GTK_COMBO_BOX (xkb->toggle_options_combo), &iter);
@@ -502,6 +515,7 @@
     xfce_framebox_add (XFCE_FRAMEBOX (frame), xkb->toggle_options_combo);
     gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (xkb->toggle_options_combo), renderer, TRUE);
     gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (xkb->toggle_options_combo), renderer, "text", 0);
+    xkb_settings_add_toggle_options_to_list (NULL, NULL, xkb);
     xkl_config_registry_foreach_option (registry,
                                         "grp",
                                         (ConfigItemProcessFunc) xkb_settings_add_toggle_options_to_list,
@@ -826,7 +840,9 @@
     {
         gtk_tree_model_get (model, &iter, NOM, &toggle_option, -1);
         g_free (kbd_config->toggle_option);
-        kbd_config->toggle_option = g_strdup (toggle_option);
+        if (strcmp ("", toggle_option) == 0)
+            kbd_config->toggle_option = NULL;
+        else kbd_config->toggle_option = g_strdup (toggle_option);
     }
 
     model = GTK_TREE_MODEL (xkb->compose_key_options_store);




More information about the Goodies-commits mailing list