Index: gnome-settings-daemon-2.27.3/plugins/keyboard/gsd-keyboard-xkb.c =================================================================== --- gnome-settings-daemon-2.27.3.orig/plugins/keyboard/gsd-keyboard-xkb.c +++ gnome-settings-daemon-2.27.3/plugins/keyboard/gsd-keyboard-xkb.c @@ -257,6 +257,20 @@ apply_xkb_settings (void) gkbd_keyboard_config_load_from_x_current (¤t_sys_kbd_config, NULL); + if (!try_activating_xkb_config_if_new (¤t_sys_kbd_config)) { + if (filter_xkb_config ()) { + if (!try_activating_xkb_config_if_new (¤t_sys_kbd_config)) { + g_warning ("Could not activate the filtered XKB configuration"); + activation_error (); + } + } else { + g_warning ("Could not activate the XKB configuration"); + activation_error (); + } + } else + xkl_debug (100, + "Actual KBD configuration was not changed: redundant notification\n"); + if (gdm_layout != NULL) { /* If there are multiple layouts, * try to find the one closest to the gdm layout @@ -275,20 +289,6 @@ apply_xkb_settings (void) } } - if (!try_activating_xkb_config_if_new (¤t_sys_kbd_config)) { - if (filter_xkb_config ()) { - if (!try_activating_xkb_config_if_new (¤t_sys_kbd_config)) { - g_warning ("Could not activate the filtered XKB configuration"); - activation_error (); - } - } else { - g_warning ("Could not activate the XKB configuration"); - activation_error (); - } - } else - 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);