]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - liblightdm-gobject/layout.c
Revert r2392 - it seems to have broken ABI in liblightdm-gobject
[sojka/lightdm.git] / liblightdm-gobject / layout.c
index 13c974f318212455552b1cf47d14f95a01d1d9c5..a780343a32d14aa40664443adb27977ae49cef8b 100644 (file)
@@ -19,17 +19,17 @@ enum {
     PROP_DESCRIPTION
 };
 
-struct _LightDMLayout
+typedef struct
 {
-    GObject parent_instance;
-
     gchar *name;
     gchar *short_description;
     gchar *description;
-};
+} LightDMLayoutPrivate;
 
 G_DEFINE_TYPE (LightDMLayout, lightdm_layout, G_TYPE_OBJECT);
 
+#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_LAYOUT, LightDMLayoutPrivate)
+
 static gboolean have_layouts = FALSE;
 static Display *display = NULL;
 static XklEngine *xkl_engine = NULL;
@@ -211,7 +211,7 @@ const gchar *
 lightdm_layout_get_name (LightDMLayout *layout)
 {
     g_return_val_if_fail (LIGHTDM_IS_LAYOUT (layout), NULL);
-    return layout->name;
+    return GET_PRIVATE (layout)->name;
 }
 
 /**
@@ -226,7 +226,7 @@ const gchar *
 lightdm_layout_get_short_description (LightDMLayout *layout)
 {
     g_return_val_if_fail (LIGHTDM_IS_LAYOUT (layout), NULL);
-    return layout->short_description;
+    return GET_PRIVATE (layout)->short_description;
 }
 
 /**
@@ -241,7 +241,7 @@ const gchar *
 lightdm_layout_get_description (LightDMLayout *layout)
 {
     g_return_val_if_fail (LIGHTDM_IS_LAYOUT (layout), NULL);
-    return layout->description;
+    return GET_PRIVATE (layout)->description;
 }
 
 static void
@@ -256,19 +256,20 @@ lightdm_layout_set_property (GObject      *object,
                              GParamSpec   *pspec)
 {
     LightDMLayout *self = LIGHTDM_LAYOUT (object);
+    LightDMLayoutPrivate *priv = GET_PRIVATE (self);
 
     switch (prop_id) {
     case PROP_NAME:
-        g_free (self->name);
-        self->name = g_strdup (g_value_get_string (value));
+        g_free (priv->name);
+        priv->name = g_strdup (g_value_get_string (value));
         break;
     case PROP_SHORT_DESCRIPTION:
-        g_free (self->short_description);
-        self->short_description = g_strdup (g_value_get_string (value));
+        g_free (priv->short_description);
+        priv->short_description = g_strdup (g_value_get_string (value));
         break;
     case PROP_DESCRIPTION:
-        g_free (self->description);
-        self->description = g_strdup (g_value_get_string (value));
+        g_free (priv->description);
+        priv->description = g_strdup (g_value_get_string (value));
         break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -306,10 +307,11 @@ static void
 lightdm_layout_finalize (GObject *object)
 {
     LightDMLayout *self = LIGHTDM_LAYOUT (object);
+    LightDMLayoutPrivate *priv = GET_PRIVATE (self);
 
-    g_free (self->name);
-    g_free (self->short_description);  
-    g_free (self->description);
+    g_free (priv->name);
+    g_free (priv->short_description);  
+    g_free (priv->description);
 }
 
 static void
@@ -317,6 +319,8 @@ lightdm_layout_class_init (LightDMLayoutClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+    g_type_class_add_private (klass, sizeof (LightDMLayoutPrivate));
+
     object_class->set_property = lightdm_layout_set_property;
     object_class->get_property = lightdm_layout_get_property;
     object_class->finalize = lightdm_layout_finalize;