diff options
-rw-r--r-- | liblightdm-gobject/layout.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/liblightdm-gobject/layout.c b/liblightdm-gobject/layout.c index 6e5442f7..369ae2f1 100644 --- a/liblightdm-gobject/layout.c +++ b/liblightdm-gobject/layout.c @@ -38,6 +38,17 @@ static XklConfigRec *xkl_config = NULL; static GList *layouts = NULL; static void +variant_cb (XklConfigRegistry *config, + const XklConfigItem *item, + gpointer data) +{ + LightDMLayout *layout; + + layout = g_object_new (LIGHTDM_TYPE_LAYOUT, "name", item->name, "short-description", item->short_description, "description", item->description, NULL); + layouts = g_list_append (layouts, layout); +} + +static void layout_cb (XklConfigRegistry *config, const XklConfigItem *item, gpointer data) @@ -46,6 +57,8 @@ layout_cb (XklConfigRegistry *config, layout = g_object_new (LIGHTDM_TYPE_LAYOUT, "name", item->name, "short-description", item->short_description, "description", item->description, NULL); layouts = g_list_append (layouts, layout); + + xkl_config_registry_foreach_layout_variant (config, item->name, variant_cb, NULL); } /** |