summaryrefslogtreecommitdiff
path: root/panels/region/gnome-region-panel-system.c
diff options
context:
space:
mode:
Diffstat (limited to 'panels/region/gnome-region-panel-system.c')
-rw-r--r--panels/region/gnome-region-panel-system.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/panels/region/gnome-region-panel-system.c b/panels/region/gnome-region-panel-system.c
index 20c623cbd..c8890d782 100644
--- a/panels/region/gnome-region-panel-system.c
+++ b/panels/region/gnome-region-panel-system.c
@@ -313,15 +313,21 @@ on_localed_properties_changed (GDBusProxy *proxy,
return;
}
+ variants = NULL;
+ g_object_set_data_full (G_OBJECT (label), "input_variants", NULL, g_free);
+
w = g_dbus_proxy_get_cached_property (proxy, "X11Variant");
if (w) {
- variants = g_strsplit (g_variant_get_string (w, NULL), ",", -1);
- g_object_set_data_full (G_OBJECT (label), "input_variants",
- g_variant_dup_string (w, NULL), g_free);
+ const char *variants_str;
+
+ variants_str = g_variant_get_string (w, NULL);
+ g_debug ("Got variants '%s'", variants_str);
+ if (variants_str && *variants_str != '\0') {
+ variants = g_strsplit (variants_str, ",", -1);
+ g_object_set_data_full (G_OBJECT (label), "input_variants",
+ g_strdup (variants_str), g_free);
+ }
g_variant_unref (w);
- } else {
- variants = NULL;
- g_object_set_data_full (G_OBJECT (label), "input_variants", NULL, g_free);
}
if (variants && variants[0])