summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Matos <tiagomatos@gmail.com>2013-04-09 02:40:55 +0200
committerRui Matos <tiagomatos@gmail.com>2013-04-15 12:06:20 +0200
commita625ac2b86431a7d6fe8072d9ac52de40db9d923 (patch)
tree504b1ff72378c24a6bacdcc774b742cb6faaa99a
parentc2d53d62cc31409bcb2cd5cc21ab0980bdfacabb (diff)
downloadgnome-settings-daemon-a625ac2b86431a7d6fe8072d9ac52de40db9d923.tar.gz
keyboard: Without settings or under GDM make sure to add the US layout
We don't want to end in a situation where users can't login because they can't type ASCII for their password. https://bugzilla.gnome.org/show_bug.cgi?id=697597
-rw-r--r--plugins/keyboard/gsd-keyboard-manager.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/plugins/keyboard/gsd-keyboard-manager.c b/plugins/keyboard/gsd-keyboard-manager.c
index cb43f15b..c7af6734 100644
--- a/plugins/keyboard/gsd-keyboard-manager.c
+++ b/plugins/keyboard/gsd-keyboard-manager.c
@@ -91,6 +91,7 @@
#define INPUT_SOURCE_TYPE_IBUS "ibus"
#define DEFAULT_LANGUAGE "en_US"
+#define DEFAULT_LAYOUT "us"
struct GsdKeyboardManagerPrivate
{
@@ -1270,6 +1271,7 @@ get_sources_from_xkb_config (GsdKeyboardManager *manager)
gint i, n;
gchar **layouts = NULL;
gchar **variants = NULL;
+ gboolean have_default_layout = FALSE;
v = g_dbus_proxy_get_cached_property (priv->localed, "X11Layout");
if (v) {
@@ -1305,9 +1307,16 @@ get_sources_from_xkb_config (GsdKeyboardManager *manager)
else
id = g_strdup (layouts[i]);
+ if (g_str_equal (id, DEFAULT_LAYOUT))
+ have_default_layout = TRUE;
+
g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, id);
g_free (id);
}
+
+ if (!have_default_layout)
+ g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, DEFAULT_LAYOUT);
+
g_settings_set_value (priv->input_sources_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
g_strfreev (layouts);