diff options
author | Rui Matos <tiagomatos@gmail.com> | 2013-04-09 02:40:55 +0200 |
---|---|---|
committer | Rui Matos <tiagomatos@gmail.com> | 2013-04-15 12:06:20 +0200 |
commit | a625ac2b86431a7d6fe8072d9ac52de40db9d923 (patch) | |
tree | 504b1ff72378c24a6bacdcc774b742cb6faaa99a | |
parent | c2d53d62cc31409bcb2cd5cc21ab0980bdfacabb (diff) | |
download | gnome-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.c | 9 |
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); |