[gnome-control-center] use new libgnomekbd function for default group switcher



commit 6b449a3a040aa78efc96987739154cf72c0518c0
Author: Sergey V. Udaltsov <svu gnome org>
Date:   Mon Apr 19 00:42:28 2010 +0100

    use new libgnomekbd function for default group switcher
    
    https://bugzilla.gnome.org/show_bug.cgi?id=603806

 .../keyboard/gnome-keyboard-properties-xkbltadd.c  |   70 ++++++-------------
 configure.ac                                       |    4 +-
 2 files changed, 24 insertions(+), 50 deletions(-)
---
diff --git a/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c b/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c
index 82296fd..8f78985 100644
--- a/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c
+++ b/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c
@@ -33,10 +33,6 @@
 #include "capplet-util.h"
 #include "gnome-keyboard-properties-xkb.h"
 
-#define GROUP_SWITCHERS_GROUP "grp"
-#define DEFAULT_GROUP_SWITCH "grp:alts_toggle"
-#define DEFAULT_VARIANT_ID "__default__"
-
 enum {
 	COMBO_BOX_MODEL_COL_SORT,
 	COMBO_BOX_MODEL_COL_VISIBLE,
@@ -60,6 +56,8 @@ static void
 
 
 
+
+
 xkb_layout_chooser_available_layouts_fill (GtkBuilder * chooser_dialog,
 					   const gchar cblid[],
 					   const gchar cbvid[],
@@ -76,6 +74,8 @@ static void
 
 
 
+
+
 xkb_layout_chooser_available_language_variants_fill (GtkBuilder *
 						     chooser_dialog);
 
@@ -87,6 +87,8 @@ static void
 
 
 
+
+
 xkb_layout_chooser_available_country_variants_fill (GtkBuilder *
 						    chooser_dialog);
 
@@ -220,7 +222,8 @@ xkb_layout_chooser_available_country_changed (GtkBuilder * chooser_dialog)
 
 static void
 xkb_layout_chooser_page_changed (GtkWidget * notebook, GtkWidget * page,
-				 gint page_num, GtkBuilder * chooser_dialog)
+				 gint page_num,
+				 GtkBuilder * chooser_dialog)
 {
 	xkb_layout_chooser_available_variant_changed (chooser_dialog);
 }
@@ -367,44 +370,15 @@ void
 xkl_layout_chooser_add_default_switcher_if_necessary (GSList *
 						      layouts_list)
 {
-	/* process default switcher */
-	if (g_slist_length (layouts_list) >= 2) {
-		GSList *options_list = xkb_options_get_selected_list ();
-		gboolean any_switcher = False;
-		GSList *option = options_list;
-		while (option != NULL) {
-			char *g, *o;
-			if (gkbd_keyboard_config_split_items
-			    (option->data, &g, &o)) {
-				if (!g_ascii_strcasecmp
-				    (g, GROUP_SWITCHERS_GROUP)) {
-					any_switcher = True;
-					break;
-				}
-			}
-			option = option->next;
-		}
-		if (!any_switcher) {
-			XklConfigItem *ci = xkl_config_item_new ();
-			g_snprintf (ci->name,
-				    XKL_MAX_CI_NAME_LENGTH,
-				    DEFAULT_GROUP_SWITCH);
-			if (xkl_config_registry_find_option
-			    (config_registry, GROUP_SWITCHERS_GROUP, ci)) {
-				const gchar *id =
-				    gkbd_keyboard_config_merge_items
-				    (GROUP_SWITCHERS_GROUP,
-				     DEFAULT_GROUP_SWITCH);
-				options_list =
-				    g_slist_append
-				    (options_list, g_strdup (id));
-				xkb_options_set_selected_list
-				    (options_list);
-			}
-			g_object_unref (G_OBJECT (ci));
-		}
-		clear_xkb_elements_list (options_list);
-	}
+	GSList *options_list = xkb_options_get_selected_list ();
+	gboolean was_appended;
+
+	options_list =
+	    gkbd_keyboard_config_add_default_switch_option_if_necessary
+	    (layouts_list, options_list, &was_appended);
+	if (was_appended)
+		xkb_options_set_selected_list (options_list);
+	clear_xkb_elements_list (options_list);
 }
 
 static void
@@ -466,11 +440,11 @@ void
 xkb_layout_choose (GtkBuilder * dialog)
 {
 	GtkBuilder *chooser_dialog;
-    
-    chooser_dialog = gtk_builder_new ();
-    gtk_builder_add_from_file (chooser_dialog, GNOMECC_UI_DIR
-                               "/gnome-keyboard-properties-layout-chooser.ui",
-                               NULL);
+
+	chooser_dialog = gtk_builder_new ();
+	gtk_builder_add_from_file (chooser_dialog, GNOMECC_UI_DIR
+				   "/gnome-keyboard-properties-layout-chooser.ui",
+				   NULL);
 	GtkWidget *chooser = CWID ("xkb_layout_chooser");
 	GtkWidget *lang_chooser = CWID ("xkb_languages_available");
 	GtkWidget *notebook = CWID ("choosers_nb");
diff --git a/configure.ac b/configure.ac
index 9a2db04..72e5b33 100644
--- a/configure.ac
+++ b/configure.ac
@@ -232,11 +232,11 @@ CAPPLET_LIBS="$CAPPLET_LIBS $XINPUT_LIBS"
 dnl ==============
 dnl gswitchit
 dnl ==============
-PKG_CHECK_MODULES(LIBGNOMEKBD, [libgnomekbd >= 2.27.4 libxklavier >= 4.0])
+PKG_CHECK_MODULES(LIBGNOMEKBD, [libgnomekbd >= 2.31.1 libxklavier >= 4.0])
 AC_SUBST(LIBGNOMEKBD_CFLAGS)
 AC_SUBST(LIBGNOMEKBD_LIBS)
 
-PKG_CHECK_MODULES(LIBGNOMEKBDUI, [libgnomekbdui >= 2.21])
+PKG_CHECK_MODULES(LIBGNOMEKBDUI, [libgnomekbdui >= 2.31.1])
 AC_SUBST(LIBGNOMEKBDUI_CFLAGS)
 AC_SUBST(LIBGNOMEKBDUI_LIBS)
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]