Hello community,
here is the log from the commit of package gnome-settings-daemon for openSUSE:Factory
checked in at Tue Dec 8 10:41:37 CET 2009.
--------
--- GNOME/gnome-settings-daemon/gnome-settings-daemon.changes 2009-10-22 09:57:42.000000000 +0200
+++ /mounts/work_src_done/STABLE/gnome-settings-daemon/gnome-settings-daemon.changes 2009-12-04 18:40:42.000000000 +0100
@@ -1,0 +2,13 @@
+Wed Dec 2 16:44:02 CET 2009 - vuntz@opensuse.org
+
+- Update to version 2.28.1:
+ + Try harder to use the keyboard layout passed by gdm.
+ + Updated translations.
+- Drop gnome-settings-daemon-try-harder-gdm-layout.patch: part of
+ it is upstream, the other part is in a new patch.
+- Add gnome-settings-daemon-add-layout-switcher.patch, which is the
+ part that was in the old patch.
+- Add gnome-settings-daemon-gdm-layout-variant.patch to fix some
+ bug in the GDM keyboard layout handling.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
gnome-settings-daemon-2.28.0.tar.bz2
gnome-settings-daemon-try-harder-gdm-layout.patch
New:
----
gnome-settings-daemon-2.28.1.tar.bz2
gnome-settings-daemon-add-layout-switcher.patch
gnome-settings-daemon-gdm-layout-variant.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-settings-daemon.spec ++++++
--- /var/tmp/diff_new_pack.yINqIY/_old 2009-12-08 10:40:46.000000000 +0100
+++ /var/tmp/diff_new_pack.yINqIY/_new 2009-12-08 10:40:46.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package gnome-settings-daemon (Version 2.28.0)
+# spec file for package gnome-settings-daemon (Version 2.28.1)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,9 +19,9 @@
Name: gnome-settings-daemon
%define _name gnome-settings-daemon
-Version: 2.28.0
-Release: 2
-License: GPL v2 or later
+Version: 2.28.1
+Release: 1
+License: GPLv2+
Summary: Settings daemon for the GNOME desktop
Url: http://www.gnome.org
Group: System/GUI/GNOME
@@ -38,8 +38,10 @@
Patch11: gnome-settings-daemon-bnc461755-randr-rotate-wacom.diff
# PATCH-FIX-UPSTREAM gnome-settings-daemon-activate-xkb-with-broken.patch bgo585868 vuntz@novell.com -- Make sure we activate the right layout when broken layouts are in gconf
Patch12: gnome-settings-daemon-activate-xkb-with-broken.patch
-# PATCH-FIX-UPSTREAM # gnome-settings-daemon-try-harder-gdm-layout.patch bgo585290 vuntz@novell.com -- Try harder to use the keyboard layout passed from GDM
-Patch13: gnome-settings-daemon-try-harder-gdm-layout.patch
+# PATCH-FIX-UPSTREAM gnome-settings-daemon-add-layout-switcher.patch bgo603806 vuntz@opensuse.org -- Add a layout switching combo if needed; the real fix implies some API change in libgnomekbd (see upstream bug)
+Patch13: gnome-settings-daemon-add-layout-switcher.patch
+# PATCH-FIX-UPSTREAM gnome-settings-daemon-gdm-layout-variant.patch vuntz@opensuse.org -- Taken from git
+Patch14: gnome-settings-daemon-gdm-layout-variant.patch
BuildRequires: fdupes
BuildRequires: gnome-common
BuildRequires: gnome-desktop-devel
@@ -66,7 +68,7 @@
splitted from it for a more general use.
%package devel
-License: GPL v2 or later
+License: GPLv2+
Summary: Development package for the GNOME settings daemon
Group: System/GUI/GNOME
Requires: %{name} = %{version}
@@ -98,6 +100,7 @@
#%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
gnome-patch-translation-update
%build
++++++ gnome-settings-daemon-2.28.0.tar.bz2 -> gnome-settings-daemon-2.28.1.tar.bz2 ++++++
++++ 7845 lines of diff (skipped)
++++++ gnome-settings-daemon-add-layout-switcher.patch ++++++
diff --git a/plugins/keyboard/gsd-keyboard-xkb.c b/plugins/keyboard/gsd-keyboard-xkb.c
index cb969e3..3a5ed6c 100644
--- a/plugins/keyboard/gsd-keyboard-xkb.c
+++ b/plugins/keyboard/gsd-keyboard-xkb.c
@@ -137,6 +137,103 @@ apply_desktop_settings (void)
gkbd_desktop_config_activate (¤t_config);
}
+#define GROUP_SWITCHERS_GROUP "grp"
+#define DEFAULT_GROUP_SWITCH "grp:shifts_toggle"
+
+static void
+_maybe_add_layout_switcher (GSList *layouts,
+ GConfClient *conf_client)
+{
+ GSList *options;
+ GSList *option;
+ gboolean any_switcher;
+
+ /* do we have more than one layout? */
+ if (g_slist_length (layouts) > 1)
+ return;
+
+ /* If yes, we need to make sure there's a way to change the layout
+ * Based on xkl_layout_chooser_add_default_switcher_if_necessary() in
+ * capplets/keyboard/gnome-keyboard-properties-xkbltadd.c
+ * (gnome-control-center) */
+ options = gconf_client_get_list (conf_client,
+ GKBD_KEYBOARD_CONFIG_KEY_OPTIONS,
+ GCONF_VALUE_STRING,
+ NULL);
+
+ if (options == NULL) {
+ /* nothing in gconf, get the current options from X */
+ GkbdKeyboardConfig kbd_config;
+
+ gkbd_keyboard_config_init (&kbd_config,
+ conf_client,
+ xkl_engine);
+ gkbd_keyboard_config_load_from_x_initial (&kbd_config, NULL);
+
+ for (option = kbd_config.options; option != NULL; option = option->next) {
+ options = g_slist_prepend (options,
+ g_strdup (option->data));
+ }
+
+ options = g_slist_reverse (options);
+
+ gkbd_keyboard_config_term (&kbd_config);
+ }
+
+ any_switcher = FALSE;
+
+ 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;
+ }
+
+ /* no option to switch between layouts, let's add one */
+ if (!any_switcher) {
+ XklConfigItem *ci = xkl_config_item_new ();
+
+ g_snprintf (ci->name, XKL_MAX_CI_NAME_LENGTH,
+ DEFAULT_GROUP_SWITCH);
+
+ /* we make sure the option we want to add is known */
+ if (!xkl_registry) {
+ xkl_registry = xkl_config_registry_get_instance (xkl_engine);
+ if (!xkl_config_registry_load (xkl_registry, TRUE)) {
+ g_object_unref (xkl_registry);
+ xkl_registry = NULL;
+ }
+ }
+
+ if (xkl_registry &&
+ xkl_config_registry_find_option (xkl_registry,
+ GROUP_SWITCHERS_GROUP,
+ ci)) {
+ const char *id;
+
+ id = gkbd_keyboard_config_merge_items
+ (GROUP_SWITCHERS_GROUP,
+ DEFAULT_GROUP_SWITCH);
+
+ options = g_slist_append (options, g_strdup (id));
+ gconf_client_set_list (conf_client,
+ GKBD_KEYBOARD_CONFIG_KEY_OPTIONS,
+ GCONF_VALUE_STRING, options,
+ NULL);
+ }
+
+ g_object_unref (G_OBJECT (ci));
+ }
+
+ g_slist_foreach (options, (GFunc) g_free, NULL);
+ g_slist_free (options);
+}
+
static gboolean
try_activating_xkb_config_if_new (GkbdKeyboardConfig *current_sys_kbd_config)
{
@@ -274,6 +371,8 @@ apply_xkb_settings (void)
g_slist_foreach (free_layouts, (GFunc) g_free, NULL);
g_slist_free (free_layouts);
+
+ _maybe_add_layout_switcher (layouts, conf_client);
}
gconf_client_set_list (conf_client,
++++++ gnome-settings-daemon-gdm-layout-variant.patch ++++++
commit 3d5189d3984980ec97d794f7bde6159bc97e1379
Author: Martin Pitt