diff --git a/capplets/keyboard/mate-keyboard-properties-dialog.ui b/capplets/keyboard/mate-keyboard-properties-dialog.ui index bed5a44f4..d59710ec3 100644 --- a/capplets/keyboard/mate-keyboard-properties-dialog.ui +++ b/capplets/keyboard/mate-keyboard-properties-dialog.ui @@ -830,6 +830,22 @@ 1 + + + _Include less-common layouts in the selections list + True + True + False + start + True + True + + + False + False + 2 + + _Separate layout for each window @@ -843,7 +859,7 @@ False False - 2 + 3 @@ -859,7 +875,7 @@ False False - 3 + 4 diff --git a/capplets/keyboard/mate-keyboard-properties-xkb.c b/capplets/keyboard/mate-keyboard-properties-xkb.c index d1dd7925f..831203f00 100644 --- a/capplets/keyboard/mate-keyboard-properties-xkb.c +++ b/capplets/keyboard/mate-keyboard-properties-xkb.c @@ -149,6 +149,18 @@ chk_separate_group_per_window_toggled (GSettings * settings, g_settings_get_boolean (settings, key)); } +static void +chk_load_extra_items_toggled (GSettings * settings, + gchar * key, + GtkBuilder * dialog) +{ + matekbd_desktop_config_load_from_gsettings (&desktop_config); + + xkl_config_registry_load (config_registry, desktop_config.load_extra_items); + + xkb_layouts_fill_selected_tree (dialog); +} + static void chk_new_windows_inherit_layout_toggled (GtkWidget * chk_new_windows_inherit_layout, @@ -193,6 +205,18 @@ setup_xkb_tabs (GtkBuilder * dialog) G_CALLBACK (chk_separate_group_per_window_toggled), dialog); + g_settings_bind (xkb_general_settings, + "load-extra-items", + WID ("chk_load_extra_items"), + "active", + G_SETTINGS_BIND_DEFAULT); + + g_signal_connect (xkb_general_settings, + "changed::load-extra-items", + G_CALLBACK (chk_load_extra_items_toggled), + dialog); + + #ifdef HAVE_X11_EXTENSIONS_XKB_H if (strcmp (xkl_engine_get_backend_name (engine), "XKB")) #endif