aboutsummaryrefslogtreecommitdiffstats
path: root/testing/gnome-settings-daemon/initial-keyboard.patch
diff options
context:
space:
mode:
authorFrancesco Colista <fcolista@alpinelinux.org>2017-09-15 10:23:23 +0000
committerFrancesco Colista <fcolista@alpinelinux.org>2017-09-15 16:28:44 +0000
commitd28004e95fa67eb4e2662feed5523bdcc767e846 (patch)
tree516f11f69230c0924937386d7924a10f11d5e08c /testing/gnome-settings-daemon/initial-keyboard.patch
parent21e70eae871680d51654c71bdd8ed3b841b78acc (diff)
testing/gnome-settings-daemon: upgrade to 3.26.0, modernize APKBUILD
Diffstat (limited to 'testing/gnome-settings-daemon/initial-keyboard.patch')
-rw-r--r--testing/gnome-settings-daemon/initial-keyboard.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/testing/gnome-settings-daemon/initial-keyboard.patch b/testing/gnome-settings-daemon/initial-keyboard.patch
new file mode 100644
index 00000000000..7a08b7fbd8b
--- /dev/null
+++ b/testing/gnome-settings-daemon/initial-keyboard.patch
@@ -0,0 +1,67 @@
+From c2e0c03c03f47da9b117db0ba876732e84dcf0c4 Mon Sep 17 00:00:00 2001
+From: Federico Mena Quintero <federico@gnome.org>
+Date: Mon, 16 May 2016 19:18:43 -0500
+Subject: [PATCH] Resurrect the code from upstream to set the default keyboard
+ from XKB if there is one.
+
+Suse works differently than GNOME here; we set a default keyboard from
+the system's configuration instead of letting GNOME take care of
+everything itself.
+
+https://bugzilla.suse.com/show_bug.cgi?id=979051
+---
+ plugins/keyboard/gsd-keyboard-manager.c | 18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/plugins/keyboard/gsd-keyboard-manager.c b/plugins/keyboard/gsd-keyboard-manager.c
+index eb75c92..06be608 100644
+--- a/plugins/keyboard/gsd-keyboard-manager.c
++++ b/plugins/keyboard/gsd-keyboard-manager.c
+@@ -450,7 +450,7 @@ input_sources_changed (GSettings *settings,
+ }
+
+ static void
+-get_sources_from_xkb_config (GsdKeyboardManager *manager)
++get_sources_from_xkb_config (GsdKeyboardManager *manager, gboolean running_under_gdm)
+ {
+ GsdKeyboardManagerPrivate *priv = manager->priv;
+ GVariantBuilder builder;
+@@ -501,7 +501,7 @@ get_sources_from_xkb_config (GsdKeyboardManager *manager)
+
+ init_builder_with_sources (&builder, priv->input_sources_settings);
+
+- if (!layouts) {
++ if (!layouts && running_under_gdm) {
+ g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, DEFAULT_LAYOUT);
+ goto out;
+ }
+@@ -653,15 +653,23 @@ maybe_create_initial_settings (GsdKeyboardManager *manager)
+
+ settings = manager->priv->input_sources_settings;
+
+- if (g_getenv ("RUNNING_UNDER_GDM"))
+- return;
++ if (g_getenv ("RUNNING_UNDER_GDM")) {
++ GVariantBuilder builder;
++ /* clean the settings and get them from the "system" */
++ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)"));
++ g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
++ get_sources_from_xkb_config (manager, TRUE);
++
++ g_settings_set_strv (settings, KEY_KEYBOARD_OPTIONS, NULL);
++ get_options_from_xkb_config (manager);
++ }
+
+ maybe_convert_old_settings (settings);
+
+ /* if we still don't have anything do some educated guesses */
+ sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);
+ if (g_variant_n_children (sources) < 1)
+- get_sources_from_xkb_config (manager);
++ get_sources_from_xkb_config (manager, FALSE);
+ g_variant_unref (sources);
+
+ options = g_settings_get_strv (settings, KEY_KEYBOARD_OPTIONS);
+--
+2.1.4
+