47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
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);
|