summaryrefslogtreecommitdiff
path: root/liblightdm-gobject
diff options
context:
space:
mode:
Diffstat (limited to 'liblightdm-gobject')
-rw-r--r--liblightdm-gobject/layout.c13
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);
}
/**