Gunnar Hjalmarsson has proposed merging 
~gunnarhj/ubuntu/+source/gnome-settings-daemon:ibus-live-session into 
~ubuntu-desktop/ubuntu/+source/gnome-settings-daemon:ubuntu/master.

Requested reviews:
  Ubuntu Desktop (ubuntu-desktop)
Related bugs:
  Bug #1786344 in gnome-settings-daemon (Ubuntu): "Default IBus input method 
ignored in live session"
  https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1786344

For more details, see:
https://code.launchpad.net/~gunnarhj/ubuntu/+source/gnome-settings-daemon/+git/gnome-settings-daemon/+merge/368409

This MP is based on the assumption (untested) that the bug happens because 
there already is at least one input source in dconf when g-s-d is run. If the 
assumption is wrong, this MP is basically a no-op.
-- 
Your team Ubuntu Desktop is requested to review the proposed merge of 
~gunnarhj/ubuntu/+source/gnome-settings-daemon:ibus-live-session into 
~ubuntu-desktop/ubuntu/+source/gnome-settings-daemon:ubuntu/master.
diff --git a/debian/changelog b/debian/changelog
index 6a493d0..697ea23 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+gnome-settings-daemon (3.32.0-1ubuntu2) UNRELEASED; urgency=medium
+
+  * debian/patches/ubuntu_ibus_configs.patch:
+    - Run add_ibus_sources_from_locale() even if dconf already contains
+      one or more sources. This will hopefully make an IBus method be
+      included when applicable also in "live sessions" (LP: #1786344).
+
+ -- Gunnar Hjalmarsson <[email protected]>  Wed, 05 Jun 2019 21:41:00 +0200
+
 gnome-settings-daemon (3.32.0-1ubuntu1) disco; urgency=medium
 
   * Merge with Debian. Remaining changes:
diff --git a/debian/patches/ubuntu_ibus_configs.patch b/debian/patches/ubuntu_ibus_configs.patch
index f69330f..afdf270 100644
--- a/debian/patches/ubuntu_ibus_configs.patch
+++ b/debian/patches/ubuntu_ibus_configs.patch
@@ -6,14 +6,14 @@ the locale, upstream removed it because they use an intial setup but we don't
 Bug: https://bugs.launchpad.net/bugs/1719938
 Forwarded: not-needed
 ---
- plugins/keyboard/gsd-keyboard-manager.c | 56 ++++++++++++++++++++++++++++++++-
- 1 file changed, 55 insertions(+), 1 deletion(-)
+ plugins/keyboard/gsd-keyboard-manager.c | 70 ++++++++++++++++++++++++
+ 1 file changed, 70 insertions(+)
 
 diff --git a/plugins/keyboard/gsd-keyboard-manager.c b/plugins/keyboard/gsd-keyboard-manager.c
-index fadde34..3b35c69 100644
+index fadde34..930d788 100644
 --- a/plugins/keyboard/gsd-keyboard-manager.c
 +++ b/plugins/keyboard/gsd-keyboard-manager.c
-@@ -168,6 +168,58 @@ check_xkb_extension (GsdKeyboardManager *manager)
+@@ -168,6 +168,73 @@ check_xkb_extension (GsdKeyboardManager *manager)
          return have_xkb;
  }
  
@@ -69,18 +69,31 @@ index fadde34..3b35c69 100644
 +        g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
 +}
 +
++static gboolean
++is_initial_done (void) {
++        g_autofree gchar *initial_file = NULL;
++        g_autofree gchar *contents = NULL;
++
++        initial_file = g_build_filename (g_get_user_config_dir (), "gnome-initial-setup-done", NULL);
++
++        if (g_file_test (initial_file, G_FILE_TEST_EXISTS) &&
++            g_file_get_contents (initial_file, &contents, NULL, NULL))
++                if (g_strcmp0 (g_strchomp (contents), "yes") == 0)
++                        return TRUE;
++
++        return FALSE;
++}
++
  static void
  xkb_init (GsdKeyboardManager *manager)
  {
-@@ -762,8 +814,10 @@ maybe_create_initial_settings (GsdKeyboardManager *manager)
- 
-         /* 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)
-+        if (g_variant_n_children (sources) < 1) {
+@@ -766,6 +833,9 @@ maybe_create_initial_settings (GsdKeyboardManager *manager)
                  get_sources_from_xkb_config (manager);
-+                add_ibus_sources_from_locale (settings);
-+        }
          g_variant_unref (sources);
  
++        if (! is_initial_done ())
++                add_ibus_sources_from_locale (settings);
++
          options = g_settings_get_strv (settings, KEY_KEYBOARD_OPTIONS);
+         if (g_strv_length (options) < 1)
+                 get_options_from_xkb_config (manager);
-- 
ubuntu-desktop mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop

Reply via email to