This commit is contained in:
Matthias Clasen 2008-11-25 18:25:48 +00:00
parent cbdaac1d9e
commit 91ffc14878
6 changed files with 1885 additions and 118 deletions

View File

@ -1 +1 @@
gnome-settings-daemon-2.24.0.tar.bz2
gnome-settings-daemon-2.24.1.tar.bz2

View File

@ -1,95 +0,0 @@
diff -up gnome-settings-daemon-2.24.0/plugins/keyboard/gsd-keyboard-xkb.c.fix-gdm-layout gnome-settings-daemon-2.24.0/plugins/keyboard/gsd-keyboard-xkb.c
--- gnome-settings-daemon-2.24.0/plugins/keyboard/gsd-keyboard-xkb.c.fix-gdm-layout 2008-10-14 09:26:57.000000000 -0400
+++ gnome-settings-daemon-2.24.0/plugins/keyboard/gsd-keyboard-xkb.c 2008-10-14 09:27:09.000000000 -0400
@@ -142,12 +142,39 @@ apply_xkb_settings (void)
{
GConfClient *conf_client;
GkbdKeyboardConfig current_sys_kbd_config;
+ int group_to_activate = -1;
+ const char *gdm_layout;
if (!inited_ok)
return;
conf_client = gconf_client_get_default ();
+ /* With GDM the user can already set a layout from the login
+ * screen. Try to keep that setting.
+ * We clear gdm_keyboard_layout early, so we don't risk
+ * recursion from gconf notification.
+ */
+ gdm_layout = gdm_keyboard_layout;
+ gdm_keyboard_layout = NULL;
+ if (gdm_layout != NULL) {
+ GSList *layouts;
+ layouts = gconf_client_get_list (conf_client,
+ GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
+ GCONF_VALUE_STRING,
+ NULL);
+ if (layouts == NULL) {
+ layouts = g_slist_append (layouts, g_strdup (gdm_layout));
+ gconf_client_set_list (conf_client,
+ GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
+ GCONF_VALUE_STRING,
+ layouts,
+ NULL);
+ }
+ g_slist_foreach (layouts, (GFunc)g_free, NULL);
+ g_slist_free (layouts);
+ }
+
gkbd_keyboard_config_init (&current_sys_kbd_config,
conf_client,
xkl_engine);
@@ -158,29 +185,20 @@ apply_xkb_settings (void)
gkbd_keyboard_config_load_from_x_current (&current_sys_kbd_config,
NULL);
- /* With GDM the user can already set a layout from the login
- * screen. Try to keep that setting */
- if (gdm_keyboard_layout != NULL) {
- if (current_kbd_config.layouts_variants == NULL) {
- current_kbd_config.layouts_variants = g_slist_append (NULL, (char *) gdm_keyboard_layout);
- gconf_client_set_list (conf_client,
- GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
- GCONF_VALUE_STRING,
- current_kbd_config.layouts_variants,
- NULL);
- } else {
- GSList *l;
- int i;
- size_t len = strlen (gdm_keyboard_layout);
- for (i = 0, l = current_kbd_config.layouts_variants; l; i++, l = l->next) {
- char *lv = l->data;
- if (strncmp (lv, gdm_keyboard_layout, len) == 0 && (lv[len] == '\0' || lv[len] == '\t')) {
- xkl_engine_lock_group (current_config.engine, i);
- break;
- }
- }
+ if (gdm_layout != NULL) {
+ /* If there are multiple layouts,
+ * try to find the one closest to the gdm layout
+ */
+ GSList *l;
+ int i;
+ size_t len = strlen (gdm_layout);
+ for (i = 0, l = current_kbd_config.layouts_variants; l; i++, l = l->next) {
+ char *lv = l->data;
+ if (strncmp (lv, gdm_layout, len) == 0 && (lv[len] == '\0' || lv[len] == '\t')) {
+ group_to_activate = i;
+ break;
+ }
}
- gdm_keyboard_layout = NULL;
}
/* Activate - only if different! */
@@ -199,6 +217,8 @@ apply_xkb_settings (void)
xkl_debug (100,
"Actual KBD configuration was not changed: redundant notification\n");
+ if (group_to_activate != -1)
+ xkl_engine_lock_group (current_config.engine, group_to_activate);
gkbd_keyboard_config_term (&current_sys_kbd_config);
}

View File

@ -1,6 +1,6 @@
Name: gnome-settings-daemon
Version: 2.24.0
Release: 14%{?dist}
Version: 2.24.1
Release: 1%{?dist}
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
Group: System Environment/Daemons
@ -38,11 +38,7 @@ Patch7: gnome-settings-daemon-2.23.91-fnf7-cycle.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=552857
Patch8: gnome-settings-daemon-2.24.0-fade.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=555873
Patch9: fix-gdm-layout.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=556307
Patch10: power-button.patch
Patch11: gsd-patches-behdad-f10.patch
%description
A daemon to share settings from GNOME to other applications. It also
@ -65,8 +61,7 @@ developing applications that use %{name}.
%patch6 -p1 -b .drop-sample-cache
%patch7 -p1 -b .fnf7-cycle
%patch8 -p1 -b .fade
%patch9 -p1 -b .fix-gdm-layout
%patch10 -p1 -b .power-button
%patch11 -p1 -b .behdad
%build
aclocal
@ -169,6 +164,10 @@ fi
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
%changelog
* Tue Nov 25 2008 Matthias Clasen <mclasen@redhat.com> - 2.24.1-1
- Update to 2.24.1
- Backport performance fixes
* Fri Oct 24 2008 Ray Strode <rstrode@redhat.com> - 2.24.0-14
- At fontconfig-devel buildrequires (bug 468304)

1875
gsd-patches-behdad-f10.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
diff -up gnome-settings-daemon-2.24.0/plugins/media-keys/gsd-media-keys-manager.c.power-button gnome-settings-daemon-2.24.0/plugins/media-keys/gsd-media-keys-manager.c
--- gnome-settings-daemon-2.24.0/plugins/media-keys/gsd-media-keys-manager.c.power-button 2008-10-14 14:28:35.000000000 -0400
+++ gnome-settings-daemon-2.24.0/plugins/media-keys/gsd-media-keys-manager.c 2008-10-14 14:29:19.000000000 -0400
@@ -556,7 +556,7 @@ do_www_action (GsdMediaKeysManager *mana
static void
do_exit_action (GsdMediaKeysManager *manager)
{
- execute (manager, "gnome-session-save --kill", FALSE, FALSE);
+ execute (manager, "gnome-session-save --shutdown-dialog", FALSE, FALSE);
}
static void

View File

@ -1 +1 @@
2e30e9d17b810103d493e474fbfd20e5 gnome-settings-daemon-2.24.0.tar.bz2
841447fa690a3a4712e9ddaec2584824 gnome-settings-daemon-2.24.1.tar.bz2