]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Revert r2392 - it seems to have broken ABI in liblightdm-gobject
authorRobert Ancell <robert.ancell@canonical.com>
Fri, 30 Sep 2016 03:35:21 +0000 (16:35 +1300)
committerRobert Ancell <robert.ancell@canonical.com>
Fri, 30 Sep 2016 03:35:21 +0000 (16:35 +1300)
liblightdm-gobject/greeter.c
liblightdm-gobject/language.c
liblightdm-gobject/layout.c
liblightdm-gobject/lightdm/greeter.h
liblightdm-gobject/lightdm/language.h
liblightdm-gobject/lightdm/layout.h
liblightdm-gobject/lightdm/session.h
liblightdm-gobject/lightdm/user.h
liblightdm-gobject/session.c
liblightdm-gobject/user.c

index 6e3c93ede37c7762feb7cd75e56e974c2747c897..07aa2371f50881bc489240489e9eb7cc9bf0cab0 100644 (file)
@@ -95,7 +95,9 @@ typedef struct
     gboolean cancelling_authentication;
 } LightDMGreeterPrivate;
 
-G_DEFINE_TYPE_WITH_PRIVATE (LightDMGreeter, lightdm_greeter, G_TYPE_OBJECT);
+G_DEFINE_TYPE (LightDMGreeter, lightdm_greeter, G_TYPE_OBJECT);
+
+#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_GREETER, LightDMGreeterPrivate)
 
 #define HEADER_SIZE 8
 #define MAX_MESSAGE_LENGTH 1024
@@ -233,7 +235,7 @@ lightdm_greeter_set_resettable (LightDMGreeter *greeter, gboolean resettable)
 
     g_return_if_fail (LIGHTDM_IS_GREETER (greeter));
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_if_fail (!priv->connected);
     priv->resettable = resettable;
@@ -282,7 +284,7 @@ static gboolean
 timed_login_cb (gpointer data)
 {
     LightDMGreeter *greeter = data;
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
 
     priv->autologin_timeout = 0;
     g_signal_emit (G_OBJECT (greeter), signals[AUTOLOGIN_TIMER_EXPIRED], 0);
@@ -402,7 +404,7 @@ get_message_length (guint8 *message, gsize message_length)
 static gboolean
 connect_to_daemon (LightDMGreeter *greeter, GError **error)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     const gchar *to_server_fd, *from_server_fd, *pipe_path;
 
     if (priv->to_server_channel || priv->from_server_channel)
@@ -454,7 +456,7 @@ connect_to_daemon (LightDMGreeter *greeter, GError **error)
 static gboolean
 send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GError **error)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     gchar *data;
     gsize data_length;
     guint32 stated_length;
@@ -515,7 +517,7 @@ send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GE
 static void
 handle_connected (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     gchar *version;
     GString *hint_string;
     int timeout;
@@ -560,7 +562,7 @@ handle_connected (LightDMGreeter *greeter, guint8 *message, gsize message_length
 static void
 handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     guint32 sequence_number, n_messages, i;
     gchar *username;
 
@@ -628,7 +630,7 @@ handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize me
 static void
 handle_end_authentication (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     guint32 sequence_number, return_code;
     gchar *username;
 
@@ -670,7 +672,7 @@ handle_idle (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsi
 static void
 handle_reset (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     GString *hint_string;
 
     g_hash_table_remove_all (priv->hints);
@@ -695,7 +697,7 @@ handle_reset (LightDMGreeter *greeter, guint8 *message, gsize message_length, gs
 static void
 handle_session_result (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     Request *request;
 
     /* Notify asynchronous caller */
@@ -719,7 +721,7 @@ handle_session_result (LightDMGreeter *greeter, guint8 *message, gsize message_l
 static void
 handle_shared_dir_result (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     Request *request;
 
     /* Notify asynchronous caller */
@@ -781,7 +783,7 @@ handle_message (LightDMGreeter *greeter, guint8 *message, gsize message_length)
 static gboolean
 recv_message (LightDMGreeter *greeter, gboolean block, guint8 **message, gsize *length, GError **error)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
     gsize n_to_read, n_read;
 
     if (!connect_to_daemon (greeter, error))
@@ -945,7 +947,7 @@ lightdm_greeter_connect_to_daemon (LightDMGreeter *greeter, GCancellable *cancel
 
     g_return_if_fail (LIGHTDM_IS_GREETER (greeter));
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     request = request_new (greeter, cancellable, callback, user_data);
     if (send_connect (greeter, priv->resettable, &error))
@@ -997,7 +999,7 @@ lightdm_greeter_connect_to_daemon_sync (LightDMGreeter *greeter, GError **error)
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     /* Read until we are connected */
     if (!send_connect (greeter, priv->resettable, error))
@@ -1047,13 +1049,8 @@ lightdm_greeter_connect_sync (LightDMGreeter *greeter, GError **error)
 const gchar *
 lightdm_greeter_get_hint (LightDMGreeter *greeter, const gchar *name)
 {
-    LightDMGreeterPrivate *priv;
-
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL);
-
-    priv = lightdm_greeter_get_instance_private (greeter);
-
-    return g_hash_table_lookup (priv->hints, name);
+    return g_hash_table_lookup (GET_PRIVATE (greeter)->hints, name);
 }
 
 /**
@@ -1281,7 +1278,7 @@ lightdm_greeter_cancel_autologin (LightDMGreeter *greeter)
 
     g_return_if_fail (LIGHTDM_IS_GREETER (greeter));
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     if (priv->autologin_timeout)
        g_source_remove (priv->autologin_timeout);
@@ -1307,7 +1304,7 @@ lightdm_greeter_authenticate (LightDMGreeter *greeter, const gchar *username, GE
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, FALSE);
 
@@ -1346,7 +1343,7 @@ lightdm_greeter_authenticate_as_guest (LightDMGreeter *greeter, GError **error)
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, FALSE);
 
@@ -1410,7 +1407,7 @@ lightdm_greeter_authenticate_remote (LightDMGreeter *greeter, const gchar *sessi
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, FALSE);
 
@@ -1453,7 +1450,7 @@ lightdm_greeter_respond (LightDMGreeter *greeter, const gchar *response, GError
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
     g_return_val_if_fail (response != NULL, FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, FALSE);
     g_return_val_if_fail (priv->n_responses_waiting > 0, FALSE);
@@ -1508,7 +1505,7 @@ lightdm_greeter_cancel_authentication (LightDMGreeter *greeter, GError **error)
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, FALSE);
 
@@ -1528,13 +1525,8 @@ lightdm_greeter_cancel_authentication (LightDMGreeter *greeter, GError **error)
 gboolean
 lightdm_greeter_get_in_authentication (LightDMGreeter *greeter)
 {
-    LightDMGreeterPrivate *priv;
-
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
-
-    priv = lightdm_greeter_get_instance_private (greeter);
-
-    return priv->in_authentication;
+    return GET_PRIVATE (greeter)->in_authentication;
 }
 
 /**
@@ -1548,13 +1540,8 @@ lightdm_greeter_get_in_authentication (LightDMGreeter *greeter)
 gboolean
 lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter)
 {
-    LightDMGreeterPrivate *priv;
-
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
-
-    priv = lightdm_greeter_get_instance_private (greeter);
-
-    return priv->is_authenticated;
+    return GET_PRIVATE (greeter)->is_authenticated;
 }
 
 /**
@@ -1568,13 +1555,8 @@ lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter)
 const gchar *
 lightdm_greeter_get_authentication_user (LightDMGreeter *greeter)
 {
-    LightDMGreeterPrivate *priv;
-
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL);
-
-    priv = lightdm_greeter_get_instance_private (greeter);
-
-    return priv->authentication_user;
+    return GET_PRIVATE (greeter)->authentication_user;
 }
 
 /**
@@ -1596,7 +1578,7 @@ lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language, GE
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, FALSE);
 
@@ -1628,7 +1610,7 @@ lightdm_greeter_start_session (LightDMGreeter *greeter, const gchar *session, GC
 
     g_return_if_fail (LIGHTDM_IS_GREETER (greeter));
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     request = request_new (greeter, cancellable, callback, user_data);
     priv->start_session_requests = g_list_append (priv->start_session_requests, request);
@@ -1679,7 +1661,7 @@ lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *sessio
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, FALSE);
     g_return_val_if_fail (priv->is_authenticated, FALSE);
@@ -1731,7 +1713,7 @@ lightdm_greeter_ensure_shared_data_dir (LightDMGreeter *greeter, const gchar *us
 
     g_return_if_fail (LIGHTDM_IS_GREETER (greeter));
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     request = request_new (greeter, cancellable, callback, user_data);
     priv->ensure_shared_data_dir_requests = g_list_append (priv->ensure_shared_data_dir_requests, request);
@@ -1791,7 +1773,7 @@ lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gcha
 
     g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL);
 
-    priv = lightdm_greeter_get_instance_private (greeter);
+    priv = GET_PRIVATE (greeter);
 
     g_return_val_if_fail (priv->connected, NULL);
 
@@ -1817,7 +1799,7 @@ lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gcha
 static void
 lightdm_greeter_init (LightDMGreeter *greeter)
 {
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (greeter);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (greeter);
 
     priv->read_buffer = g_malloc (HEADER_SIZE);
     priv->hints = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
@@ -1895,7 +1877,7 @@ static void
 lightdm_greeter_finalize (GObject *object)
 {
     LightDMGreeter *self = LIGHTDM_GREETER (object);
-    LightDMGreeterPrivate *priv = lightdm_greeter_get_instance_private (self);
+    LightDMGreeterPrivate *priv = GET_PRIVATE (self);
 
     g_clear_object (&priv->socket);
     if (priv->to_server_channel)
@@ -1926,6 +1908,8 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+    g_type_class_add_private (klass, sizeof (LightDMGreeterPrivate));
+
     object_class->set_property = lightdm_greeter_set_property;
     object_class->get_property = lightdm_greeter_get_property;
     object_class->finalize = lightdm_greeter_finalize;
index 8234f0985d5a256a75e6454105e0fa0cdbadde96..ac17645cd3c142f88a8acfa2bbcbc04cbf98c746 100644 (file)
@@ -22,17 +22,17 @@ enum {
     PROP_TERRITORY
 };
 
-struct _LightDMLanguage
+typedef struct
 {
-    GObject parent_instance;
-
     gchar *code;
     gchar *name;
     gchar *territory;
-};
+} LightDMLanguagePrivate;
 
 G_DEFINE_TYPE (LightDMLanguage, lightdm_language, G_TYPE_OBJECT);
 
+#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_LANGUAGE, LightDMLanguagePrivate)
+
 static gboolean have_languages = FALSE;
 static GList *languages = NULL;
 
@@ -201,7 +201,7 @@ const gchar *
 lightdm_language_get_code (LightDMLanguage *language)
 {
     g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), NULL);
-    return language->code;
+    return GET_PRIVATE (language)->code;
 }
 
 /**
@@ -215,11 +215,15 @@ lightdm_language_get_code (LightDMLanguage *language)
 const gchar *
 lightdm_language_get_name (LightDMLanguage *language)
 {
+    LightDMLanguagePrivate *priv;
+
     g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), NULL);
 
-    if (!language->name)
+    priv = GET_PRIVATE (language);
+
+    if (!priv->name)
     {
-        gchar *locale = get_locale_name (language->code);
+        gchar *locale = get_locale_name (priv->code);
         if (locale)
         {
             gchar *current = setlocale (LC_ALL, NULL);
@@ -228,19 +232,19 @@ lightdm_language_get_name (LightDMLanguage *language)
 
             gchar *language_en = nl_langinfo (_NL_IDENTIFICATION_LANGUAGE);
             if (language_en && strlen (language_en) > 0)
-                language->name = g_strdup (dgettext ("iso_639_3", language_en));
+                priv->name = g_strdup (dgettext ("iso_639_3", language_en));
 
             setlocale (LC_ALL, current);
         }
-        if (!language->name)
+        if (!priv->name)
         {
-            gchar **tokens = g_strsplit_set (language->code, "_.@", 2);
-            language->name = g_strdup (tokens[0]);
+            gchar **tokens = g_strsplit_set (priv->code, "_.@", 2);
+            priv->name = g_strdup (tokens[0]);
             g_strfreev (tokens);
         }
     }
 
-    return language->name;
+    return priv->name;
 }
 
 /**
@@ -254,11 +258,15 @@ lightdm_language_get_name (LightDMLanguage *language)
 const gchar *
 lightdm_language_get_territory (LightDMLanguage *language)
 {
+    LightDMLanguagePrivate *priv;
+
     g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), NULL);
 
-    if (!language->territory && strchr (language->code, '_'))
+    priv = GET_PRIVATE (language);
+
+    if (!priv->territory && strchr (priv->code, '_'))
     {
-        gchar *locale = get_locale_name (language->code);
+        gchar *locale = get_locale_name (priv->code);
         if (locale)
         {
             gchar *current = setlocale (LC_ALL, NULL);
@@ -267,19 +275,19 @@ lightdm_language_get_territory (LightDMLanguage *language)
 
             gchar *country_en = nl_langinfo (_NL_IDENTIFICATION_TERRITORY);
             if (country_en && strlen (country_en) > 0 && g_strcmp0 (country_en, "ISO") != 0)
-                language->territory = g_strdup (dgettext ("iso_3166", country_en));
+                priv->territory = g_strdup (dgettext ("iso_3166", country_en));
 
             setlocale (LC_ALL, current);
         }
-        if (!language->territory)
+        if (!priv->territory)
         {
-            gchar **tokens = g_strsplit_set (language->code, "_.@", 3);
-            language->territory = g_strdup (tokens[1]);
+            gchar **tokens = g_strsplit_set (priv->code, "_.@", 3);
+            priv->territory = g_strdup (tokens[1]);
             g_strfreev (tokens);
         }
     }
 
-    return language->territory;
+    return priv->territory;
 }
 
 /**
@@ -294,19 +302,23 @@ lightdm_language_get_territory (LightDMLanguage *language)
 gboolean
 lightdm_language_matches (LightDMLanguage *language, const gchar *code)
 {
+    LightDMLanguagePrivate *priv;
+
     g_return_val_if_fail (LIGHTDM_IS_LANGUAGE (language), FALSE);
     g_return_val_if_fail (code != NULL, FALSE);
 
+    priv = GET_PRIVATE (language);
+
     /* Handle the fact the UTF-8 is specified both as '.utf8' and '.UTF-8' */
-    if (is_utf8 (language->code) && is_utf8 (code))
+    if (is_utf8 (priv->code) && is_utf8 (code))
     {
         /* Match the characters before the '.' */
         int i;
-        for (i = 0; language->code[i] && code[i] && language->code[i] == code[i] && code[i] != '.' ; i++);
-        return language->code[i] == '.' && code[i] == '.';
+        for (i = 0; priv->code[i] && code[i] && priv->code[i] == code[i] && code[i] != '.' ; i++);
+        return priv->code[i] == '.' && code[i] == '.';
     }
 
-    return g_str_equal (language->code, code);
+    return g_str_equal (priv->code, code);
 }
 
 static void
@@ -321,11 +333,12 @@ lightdm_language_set_property (GObject      *object,
                                GParamSpec   *pspec)
 {
     LightDMLanguage *self = LIGHTDM_LANGUAGE (object);
+    LightDMLanguagePrivate *priv = GET_PRIVATE (self);
 
     switch (prop_id) {
     case PROP_CODE:
-        g_free (self->name);
-        self->code = g_strdup (g_value_get_string (value));
+        g_free (priv->name);
+        priv->code = g_strdup (g_value_get_string (value));
         break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -364,6 +377,8 @@ lightdm_language_class_init (LightDMLanguageClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+    g_type_class_add_private (klass, sizeof (LightDMLanguagePrivate));
+
     object_class->set_property = lightdm_language_set_property;
     object_class->get_property = lightdm_language_get_property;
 
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;
index 11f5e4bbad9ea9fb1978e4e4ab1988f28603314c..047708ed038d525b45b7e0f3a915a3dc863823c7 100644 (file)
 
 G_BEGIN_DECLS
 
-#define LIGHTDM_TYPE_GREETER (lightdm_greeter_get_type())
-
-G_DECLARE_DERIVABLE_TYPE (LightDMGreeter, lightdm_greeter, LIGHTDM, GREETER, GObject)
+#define LIGHTDM_TYPE_GREETER            (lightdm_greeter_get_type())
+#define LIGHTDM_GREETER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_GREETER, LightDMGreeter))
+#define LIGHTDM_GREETER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_GREETER, LightDMGreeterClass))
+#define LIGHTDM_IS_GREETER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_GREETER))
+#define LIGHTDM_IS_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_GREETER))
+#define LIGHTDM_GREETER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_GREETER, LightDMGreeterClass))
 
 #define LIGHTDM_GREETER_ERROR lightdm_greeter_error_quark ()
 
@@ -55,7 +58,12 @@ typedef enum
 
 GType lightdm_message_type_get_type (void);
 
-struct _LightDMGreeterClass
+typedef struct
+{
+    GObject parent_instance;
+} LightDMGreeter;
+
+typedef struct
 {
     GObjectClass parent_class;
 
@@ -71,7 +79,15 @@ struct _LightDMGreeterClass
     void (*reserved2) (void);
     void (*reserved3) (void);
     void (*reserved4) (void);
-};
+} LightDMGreeterClass;
+
+#ifdef GLIB_VERSION_2_44
+typedef LightDMGreeter *LightDMGreeter_autoptr;
+static inline void glib_autoptr_cleanup_LightDMGreeter (LightDMGreeter **_ptr)
+{
+    glib_autoptr_cleanup_GObject ((GObject **) _ptr);
+}
+#endif
 
 /**
  * LightDMGreeterError:
@@ -96,6 +112,8 @@ GQuark lightdm_greeter_error_quark (void);
 
 GType lightdm_greeter_error_get_type (void);
 
+GType lightdm_greeter_get_type (void);
+
 LightDMGreeter *lightdm_greeter_new (void);
 
 void lightdm_greeter_set_resettable (LightDMGreeter *greeter, gboolean resettable);
index 7f33c43cb76693d8186691f183381fad29944124..6c3f83bcd89811a69b159b1253d30fcdf26cdef6 100644 (file)
 
 G_BEGIN_DECLS
 
-#define LIGHTDM_TYPE_LANGUAGE (lightdm_language_get_type())
+#define LIGHTDM_TYPE_LANGUAGE            (lightdm_language_get_type())
+#define LIGHTDM_LANGUAGE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_LANGUAGE, LightDMLanguage));
+#define LIGHTDM_LANGUAGE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_LANGUAGE, LightDMLanguageClass))
+#define LIGHTDM_IS_LANGUAGE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_LANGUAGE))
+#define LIGHTDM_IS_LANGUAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_LANGUAGE))
+#define LIGHTDM_LANGUAGE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_LANGUAGE, LightDMLanguageClass))
 
-G_DECLARE_FINAL_TYPE (LightDMLanguage, lightdm_language, LIGHTDM, LANGUAGE, GObject)
+typedef struct
+{
+    GObject parent_instance;
+} LightDMLanguage;
 
-struct _LightDMLanguageClass
+typedef struct
 {
-    /*< private >*/
     GObjectClass parent_class;
-};
+
+    /* Reserved */
+    void (*reserved1) (void);
+    void (*reserved2) (void);
+    void (*reserved3) (void);
+    void (*reserved4) (void);
+    void (*reserved5) (void);
+    void (*reserved6) (void);
+} LightDMLanguageClass;
+
+#ifdef GLIB_VERSION_2_44
+typedef LightDMLanguage *LightDMLanguage_autoptr;
+static inline void glib_autoptr_cleanup_LightDMLanguage (LightDMLanguage **_ptr)
+{
+    glib_autoptr_cleanup_GObject ((GObject **) _ptr);
+}
+#endif
+
+GType lightdm_language_get_type (void);
 
 GList *lightdm_get_languages (void);
 
index f4369504fa87d221104c55965348771e522222d3..c971980b60b36dc294b85ffea775d5fd4a0596a6 100644 (file)
 
 G_BEGIN_DECLS
 
-#define LIGHTDM_TYPE_LAYOUT (lightdm_layout_get_type())
+#define LIGHTDM_TYPE_LAYOUT            (lightdm_layout_get_type())
+#define LIGHTDM_LAYOUT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_LAYOUT, LightDMLayout));
+#define LIGHTDM_LAYOUT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_LAYOUT, LightDMLayoutClass))
+#define LIGHTDM_IS_LAYOUT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_LAYOUT))
+#define LIGHTDM_IS_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_LAYOUT))
+#define LIGHTDM_LAYOUT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_LAYOUT, LightDMLayoutClass))
 
-G_DECLARE_FINAL_TYPE (LightDMLayout, lightdm_layout, LIGHTDM, LAYOUT, GObject)
+typedef struct
+{
+    GObject parent_instance;
+} LightDMLayout;
 
-struct _LightDMLayoutClass
+typedef struct
 {
-    /*< private >*/
     GObjectClass parent_class;
-};
+
+    /* Reserved */
+    void (*reserved1) (void);
+    void (*reserved2) (void);
+    void (*reserved3) (void);
+    void (*reserved4) (void);
+    void (*reserved5) (void);
+    void (*reserved6) (void);
+} LightDMLayoutClass;
+
+#ifdef GLIB_VERSION_2_44
+typedef LightDMLayout *LightDMLayout_autoptr;
+static inline void glib_autoptr_cleanup_LightDMLayout (LightDMLayout **_ptr)
+{
+    glib_autoptr_cleanup_GObject ((GObject **) _ptr);
+}
+#endif
+
+GType lightdm_layout_get_type (void);
 
 GList *lightdm_get_layouts (void);
 
index f8a4a10f0007e0b3fdfd1442d05c9bacc9f9cc34..9c447e1f9087f6415bf62e28ebf1f7cb87da5996 100644 (file)
 
 G_BEGIN_DECLS
 
-struct _LightDMSessionClass
+#define LIGHTDM_TYPE_SESSION            (lightdm_session_get_type())
+#define LIGHTDM_SESSION(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_SESSION, LightDMSession));
+#define LIGHTDM_SESSION_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_SESSION, LightDMSessionClass))
+#define LIGHTDM_IS_SESSION(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_SESSION))
+#define LIGHTDM_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_SESSION))
+#define LIGHTDM_SESSION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_SESSION, LightDMSessionClass))
+
+typedef struct
+{
+    GObject parent_instance;
+} LightDMSession;
+
+typedef struct
 {
-    /*< private >*/
     GObjectClass parent_class;
-};
 
-#define LIGHTDM_TYPE_SESSION (lightdm_session_get_type())
+    /* Reserved */
+    void (*reserved1) (void);
+    void (*reserved2) (void);
+    void (*reserved3) (void);
+    void (*reserved4) (void);
+    void (*reserved5) (void);
+    void (*reserved6) (void);
+} LightDMSessionClass;
+
+#ifdef GLIB_VERSION_2_44
+typedef LightDMSession *LightDMSession_autoptr;
+static inline void glib_autoptr_cleanup_LightDMSession (LightDMSession **_ptr)
+{
+    glib_autoptr_cleanup_GObject ((GObject **) _ptr);
+}
+#endif
 
-G_DECLARE_FINAL_TYPE (LightDMSession, lightdm_session, LIGHTDM, SESSION, GObject)
+GType lightdm_session_get_type (void);
 
 GList *lightdm_get_sessions (void);
 
index 63b7c567099b11fd1896e0f3c69970c72b7afcb3..d092477a8a700e6c8ccfc9fe348ac7945d12c3c1 100644 (file)
 
 G_BEGIN_DECLS
 
-#define LIGHTDM_TYPE_USER (lightdm_user_get_type())
+#define LIGHTDM_TYPE_USER_LIST            (lightdm_user_list_get_type())
+#define LIGHTDM_USER_LIST(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_USER_LIST, LightDMUserList));
+#define LIGHTDM_USER_LIST_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_USER_LIST, LightDMUserListClass))
+#define LIGHTDM_IS_USER_LIST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_USER_LIST))
+#define LIGHTDM_IS_USER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_USER_LIST))
+#define LIGHTDM_USER_LIST_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_USER_LIST, LightDMUserListClass))
+
+#define LIGHTDM_TYPE_USER            (lightdm_user_get_type())
+#define LIGHTDM_USER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIGHTDM_TYPE_USER, LightDMUser));
+#define LIGHTDM_USER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LIGHTDM_TYPE_USER, LightDMUserClass))
+#define LIGHTDM_IS_USER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIGHTDM_TYPE_USER))
+#define LIGHTDM_IS_USER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIGHTDM_TYPE_USER))
+#define LIGHTDM_USER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LIGHTDM_TYPE_USER, LightDMUserClass))
 
-G_DECLARE_FINAL_TYPE (LightDMUser, lightdm_user, LIGHTDM, USER, GObject)
+#define LIGHTDM_USER_LIST_SIGNAL_USER_ADDED   "user-added"
+#define LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED "user-changed"
+#define LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED "user-removed"
 
 #define LIGHTDM_SIGNAL_USER_CHANGED "changed"
 
-struct _LightDMUserClass
+typedef struct
+{
+    GObject parent_instance;
+} LightDMUser;
+
+typedef struct
 {
-    /*< private >*/
     GObjectClass parent_class;
-};
+    void (*changed)(LightDMUser *user);
+
+    /* Reserved */
+    void (*reserved1) (void);
+    void (*reserved2) (void);
+    void (*reserved3) (void);
+    void (*reserved4) (void);
+    void (*reserved5) (void);
+    void (*reserved6) (void);
+} LightDMUserClass;
+
+typedef struct
+{
+    GObject parent_instance;
+} LightDMUserList;
 
-#define LIGHTDM_TYPE_USER_LIST (lightdm_user_list_get_type())
+typedef struct
+{
+    GObjectClass parent_class;
 
-G_DECLARE_FINAL_TYPE (LightDMUserList, lightdm_user_list, LIGHTDM, USER_LIST, GObject)
+    void (*user_added)(LightDMUserList *user_list, LightDMUser *user);
+    void (*user_changed)(LightDMUserList *user_list, LightDMUser *user);
+    void (*user_removed)(LightDMUserList *user_list, LightDMUser *user);
+
+    /* Reserved */
+    void (*reserved1) (void);
+    void (*reserved2) (void);
+    void (*reserved3) (void);
+    void (*reserved4) (void);
+    void (*reserved5) (void);
+    void (*reserved6) (void);
+} LightDMUserListClass;
+
+#ifdef GLIB_VERSION_2_44
+typedef LightDMUser *LightDMUser_autoptr;
+static inline void glib_autoptr_cleanup_LightDMUser (LightDMUser **_ptr)
+{
+    glib_autoptr_cleanup_GObject ((GObject **) _ptr);
+}
+typedef LightDMUserList *LightDMUserList_autoptr;
+static inline void glib_autoptr_cleanup_LightDMUserList (LightDMUserList **_ptr)
+{
+    glib_autoptr_cleanup_GObject ((GObject **) _ptr);
+}
+#endif
 
-#define LIGHTDM_USER_LIST_SIGNAL_USER_ADDED   "user-added"
-#define LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED "user-changed"
-#define LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED "user-removed"
+GType lightdm_user_list_get_type (void);
 
-struct _LightDMUserListClass
-{
-    /*< private >*/
-    GObjectClass parent_class;
-};
+GType lightdm_user_get_type (void);
 
 LightDMUserList *lightdm_user_list_get_instance (void);
 
index fbbc5f794c2e7be46936036fe9fe69e0be15169a..7549e0bb9cbdd64bd210418ac09f6623156d4058 100644 (file)
@@ -20,16 +20,18 @@ enum {
     PROP_COMMENT
 };
 
-struct _LightDMSession
+typedef struct
 {
     gchar *key;
     gchar *type;
     gchar *name;
     gchar *comment;
-};
+} LightDMSessionPrivate;
 
 G_DEFINE_TYPE (LightDMSession, lightdm_session, G_TYPE_OBJECT);
 
+#define GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_SESSION, LightDMSessionPrivate)
+
 static gboolean have_sessions = FALSE;
 static GList *local_sessions = NULL;
 static GList *remote_sessions = NULL;
@@ -37,8 +39,9 @@ static GList *remote_sessions = NULL;
 static gint
 compare_session (gconstpointer a, gconstpointer b)
 {
-    const LightDMSession *sa = a, *sb = b;
-    return strcmp (sa->name, sb->name);
+    LightDMSessionPrivate *priv_a = GET_PRIVATE (a);
+    LightDMSessionPrivate *priv_b = GET_PRIVATE (b);
+    return strcmp (priv_a->name, priv_b->name);
 }
 
 static LightDMSession *
@@ -46,6 +49,7 @@ load_session (GKeyFile *key_file, const gchar *key, const gchar *default_type)
 {
     gchar *domain, *name, *type;
     LightDMSession *session;
+    LightDMSessionPrivate *priv;
     gchar *try_exec;
 
     if (g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY, NULL) ||
@@ -87,20 +91,21 @@ load_session (GKeyFile *key_file, const gchar *key, const gchar *default_type)
         type = strdup (default_type);
 
     session = g_object_new (LIGHTDM_TYPE_SESSION, NULL);
+    priv = GET_PRIVATE (session);
 
-    g_free (session->key);
-    session->key = g_strdup (key);
+    g_free (priv->key);
+    priv->key = g_strdup (key);
 
-    g_free (session->type);
-    session->type = type;
+    g_free (priv->type);
+    priv->type = type;
 
-    g_free (session->name);
-    session->name = name;
+    g_free (priv->name);
+    priv->name = name;
 
-    g_free (session->comment);
-    session->comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_COMMENT, domain, NULL);
-    if (!session->comment)
-        session->comment = g_strdup ("");
+    g_free (priv->comment);
+    priv->comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_COMMENT, domain, NULL);
+    if (!priv->comment)
+        priv->comment = g_strdup ("");
 
     g_free (domain);
 
@@ -151,7 +156,7 @@ load_sessions_dir (GList *sessions, const gchar *sessions_dir, const gchar *defa
             session = load_session (key_file, key, default_type);
             if (session)
             {
-                g_debug ("Loaded session %s (%s, %s)", path, session->name, session->comment);
+                g_debug ("Loaded session %s (%s, %s)", path, GET_PRIVATE (session)->name, GET_PRIVATE (session)->comment);
                 sessions = g_list_insert_sorted (sessions, session, compare_session);
             }
             else
@@ -270,7 +275,7 @@ const gchar *
 lightdm_session_get_key (LightDMSession *session)
 {
     g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL);
-    return session->key;
+    return GET_PRIVATE (session)->key;
 }
 
 /**
@@ -285,7 +290,7 @@ const gchar *
 lightdm_session_get_session_type (LightDMSession *session)
 {
     g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL);
-    return session->type;
+    return GET_PRIVATE (session)->type;
 }
 
 /**
@@ -300,7 +305,7 @@ const gchar *
 lightdm_session_get_name (LightDMSession *session)
 {
     g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL);
-    return session->name;
+    return GET_PRIVATE (session)->name;
 }
 
 /**
@@ -315,7 +320,7 @@ const gchar *
 lightdm_session_get_comment (LightDMSession *session)
 {
     g_return_val_if_fail (LIGHTDM_IS_SESSION (session), NULL);
-    return session->comment;
+    return GET_PRIVATE (session)->comment;
 }
 
 static void
@@ -362,11 +367,12 @@ static void
 lightdm_session_finalize (GObject *object)
 {
     LightDMSession *self = LIGHTDM_SESSION (object);
+    LightDMSessionPrivate *priv = GET_PRIVATE (self);
 
-    g_free (self->key);
-    g_free (self->type);
-    g_free (self->name);
-    g_free (self->comment);
+    g_free (priv->key);
+    g_free (priv->type);
+    g_free (priv->name);
+    g_free (priv->comment);
 }
 
 static void
@@ -374,6 +380,8 @@ lightdm_session_class_init (LightDMSessionClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+    g_type_class_add_private (klass, sizeof (LightDMSessionPrivate));
+
     object_class->set_property = lightdm_session_set_property;
     object_class->get_property = lightdm_session_get_property;
     object_class->finalize = lightdm_session_finalize;
index 905dc2c81c9a2ea8c49999cd532a52e9e044c613..e47d563be7932e8ca2220d8d951df76d62c480f2 100644 (file)
@@ -57,27 +57,25 @@ enum
 };
 static guint user_signals[LAST_USER_SIGNAL] = { 0 };
 
-struct _LightDMUserList
+typedef struct
 {
-    GObject parent_instance;
-
     gboolean initialized;
 
     /* Wrapper list, kept locally to preserve transfer-none promises */
     GList *lightdm_list;
-};
+} LightDMUserListPrivate;
 
-G_DEFINE_TYPE (LightDMUserList, lightdm_user_list, G_TYPE_OBJECT);
-
-struct _LightDMUser
+typedef struct
 {
-    GObject parent_instance;
-
     CommonUser *common_user;
-};
+} LightDMUserPrivate;
 
+G_DEFINE_TYPE (LightDMUserList, lightdm_user_list, G_TYPE_OBJECT);
 G_DEFINE_TYPE (LightDMUser, lightdm_user, G_TYPE_OBJECT);
 
+#define GET_LIST_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_USER_LIST, LightDMUserListPrivate)
+#define GET_USER_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), LIGHTDM_TYPE_USER, LightDMUserPrivate)
+
 static LightDMUserList *singleton = NULL;
 
 /**
@@ -112,31 +110,35 @@ wrap_common_user (CommonUser *user)
 static void
 user_list_added_cb (CommonUserList *common_list, CommonUser *common_user, LightDMUserList *user_list)
 {
+    LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list);
     GList *common_users = common_user_list_get_users (common_list);
     LightDMUser *lightdm_user = wrap_common_user (common_user);
-    user_list->lightdm_list = g_list_insert (user_list->lightdm_list, lightdm_user, g_list_index (common_users, common_user));
+    priv->lightdm_list = g_list_insert (priv->lightdm_list, lightdm_user, g_list_index (common_users, common_user));
     g_signal_emit (user_list, list_signals[USER_ADDED], 0, lightdm_user);
 }
 
 static void
 user_list_changed_cb (CommonUserList *common_list, CommonUser *common_user, LightDMUserList *user_list)
 {
+    LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list);
     GList *common_users = common_user_list_get_users (common_list);
-    LightDMUser *lightdm_user = g_list_nth_data (user_list->lightdm_list, g_list_index (common_users, common_user));
+    LightDMUser *lightdm_user = g_list_nth_data (priv->lightdm_list, g_list_index (common_users, common_user));
     g_signal_emit (user_list, list_signals[USER_CHANGED], 0, lightdm_user);
 }
 
 static void
 user_list_removed_cb (CommonUserList *common_list, CommonUser *common_user, LightDMUserList *user_list)
 {
+    LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list);
     GList *link;
 
-    for (link = user_list->lightdm_list; link; link = link->next)
+    for (link = priv->lightdm_list; link; link = link->next)
     {
         LightDMUser *lightdm_user = link->data;
-        if (lightdm_user->common_user == common_user)
+        LightDMUserPrivate *user_priv = GET_USER_PRIVATE (lightdm_user);
+        if (user_priv->common_user == common_user)
         {
-            user_list->lightdm_list = g_list_delete_link (user_list->lightdm_list, link);
+            priv->lightdm_list = g_list_delete_link (priv->lightdm_list, link);
             g_signal_emit (user_list, list_signals[USER_REMOVED], 0, lightdm_user);
             g_object_unref (lightdm_user);
             break;
@@ -147,10 +149,11 @@ user_list_removed_cb (CommonUserList *common_list, CommonUser *common_user, Ligh
 static void
 initialize_user_list_if_needed (LightDMUserList *user_list)
 {
+    LightDMUserListPrivate *priv = GET_LIST_PRIVATE (user_list);
     GList *common_users;
     GList *link;
 
-    if (user_list->initialized)
+    if (priv->initialized)
         return;
 
     common_users = common_user_list_get_users (common_user_list_get_instance ());
@@ -158,16 +161,16 @@ initialize_user_list_if_needed (LightDMUserList *user_list)
     {
         CommonUser *user = link->data;
         LightDMUser *lightdm_user = wrap_common_user (user);
-        user_list->lightdm_list = g_list_prepend (user_list->lightdm_list, lightdm_user);
+        priv->lightdm_list = g_list_prepend (priv->lightdm_list, lightdm_user);
     }
-    user_list->lightdm_list = g_list_reverse (user_list->lightdm_list);
+    priv->lightdm_list = g_list_reverse (priv->lightdm_list);
 
     CommonUserList *common_list = common_user_list_get_instance ();
     g_signal_connect (common_list, USER_LIST_SIGNAL_USER_ADDED, G_CALLBACK (user_list_added_cb), user_list);
     g_signal_connect (common_list, USER_LIST_SIGNAL_USER_CHANGED, G_CALLBACK (user_list_changed_cb), user_list);
     g_signal_connect (common_list, USER_LIST_SIGNAL_USER_REMOVED, G_CALLBACK (user_list_removed_cb), user_list);
 
-    user_list->initialized = TRUE;
+    priv->initialized = TRUE;
 }
 
 /**
@@ -181,7 +184,7 @@ lightdm_user_list_get_length (LightDMUserList *user_list)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER_LIST (user_list), 0);
     initialize_user_list_if_needed (user_list);
-    return g_list_length (user_list->lightdm_list);
+    return g_list_length (GET_LIST_PRIVATE (user_list)->lightdm_list);
 }
 
 /**
@@ -198,7 +201,7 @@ lightdm_user_list_get_users (LightDMUserList *user_list)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER_LIST (user_list), NULL);
     initialize_user_list_if_needed (user_list);
-    return user_list->lightdm_list;
+    return GET_LIST_PRIVATE (user_list)->lightdm_list;
 }
 
 /**
@@ -220,7 +223,7 @@ lightdm_user_list_get_user_by_name (LightDMUserList *user_list, const gchar *use
 
     initialize_user_list_if_needed (user_list);
 
-    for (link = user_list->lightdm_list; link; link = link->next)
+    for (link = GET_LIST_PRIVATE (user_list)->lightdm_list; link; link = link->next)
     {
         LightDMUser *user = link->data;
         if (g_strcmp0 (lightdm_user_get_name (user), username) == 0)
@@ -270,8 +273,9 @@ static void
 lightdm_user_list_finalize (GObject *object)
 {
     LightDMUserList *self = LIGHTDM_USER_LIST (object);
+    LightDMUserListPrivate *priv = GET_LIST_PRIVATE (self);
 
-    g_list_free_full (self->lightdm_list, g_object_unref);
+    g_list_free_full (priv->lightdm_list, g_object_unref);
 
     G_OBJECT_CLASS (lightdm_user_list_parent_class)->finalize (object);
 }
@@ -281,6 +285,8 @@ lightdm_user_list_class_init (LightDMUserListClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+    g_type_class_add_private (klass, sizeof (LightDMUserListPrivate));
+
     object_class->set_property = lightdm_user_list_set_property;
     object_class->get_property = lightdm_user_list_get_property;
     object_class->finalize = lightdm_user_list_finalize;
@@ -319,7 +325,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass)
         g_signal_new (LIGHTDM_USER_LIST_SIGNAL_USER_ADDED,
                       G_TYPE_FROM_CLASS (klass),
                       G_SIGNAL_RUN_LAST,
-                      0,
+                      G_STRUCT_OFFSET (LightDMUserListClass, user_added),
                       NULL, NULL,
                       NULL,
                       G_TYPE_NONE, 1, LIGHTDM_TYPE_USER);
@@ -335,7 +341,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass)
         g_signal_new (LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED,
                       G_TYPE_FROM_CLASS (klass),
                       G_SIGNAL_RUN_LAST,
-                      0,
+                      G_STRUCT_OFFSET (LightDMUserListClass, user_changed),
                       NULL, NULL,
                       NULL,
                       G_TYPE_NONE, 1, LIGHTDM_TYPE_USER);
@@ -351,7 +357,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass)
         g_signal_new (LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED,
                       G_TYPE_FROM_CLASS (klass),
                       G_SIGNAL_RUN_LAST,
-                      0,
+                      G_STRUCT_OFFSET (LightDMUserListClass, user_removed),
                       NULL, NULL,
                       NULL,
                       G_TYPE_NONE, 1, LIGHTDM_TYPE_USER);
@@ -369,7 +375,7 @@ const gchar *
 lightdm_user_get_name (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_name (user->common_user);
+    return common_user_get_name (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -384,7 +390,7 @@ const gchar *
 lightdm_user_get_real_name (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_real_name (user->common_user);
+    return common_user_get_real_name (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -399,7 +405,7 @@ const gchar *
 lightdm_user_get_display_name (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_display_name (user->common_user);
+    return common_user_get_display_name (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -414,7 +420,7 @@ const gchar *
 lightdm_user_get_home_directory (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_home_directory (user->common_user);
+    return common_user_get_home_directory (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -429,7 +435,7 @@ const gchar *
 lightdm_user_get_image (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_image (user->common_user);
+    return common_user_get_image (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -444,7 +450,7 @@ const gchar *
 lightdm_user_get_background (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_background (user->common_user);
+    return common_user_get_background (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -459,7 +465,7 @@ const gchar *
 lightdm_user_get_language (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_language (user->common_user);
+    return common_user_get_language (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -474,7 +480,7 @@ const gchar *
 lightdm_user_get_layout (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_layout (user->common_user);
+    return common_user_get_layout (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -489,7 +495,7 @@ const gchar * const *
 lightdm_user_get_layouts (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_layouts (user->common_user);
+    return common_user_get_layouts (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -504,7 +510,7 @@ const gchar *
 lightdm_user_get_session (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
-    return common_user_get_session (user->common_user);
+    return common_user_get_session (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -519,7 +525,7 @@ gboolean
 lightdm_user_get_logged_in (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), FALSE);
-    return common_user_get_logged_in (user->common_user);
+    return common_user_get_logged_in (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -534,7 +540,7 @@ gboolean
 lightdm_user_get_has_messages (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), FALSE);
-    return common_user_get_has_messages (user->common_user);
+    return common_user_get_has_messages (GET_USER_PRIVATE (user)->common_user);
 }
 
 /**
@@ -549,7 +555,7 @@ uid_t
 lightdm_user_get_uid (LightDMUser *user)
 {
     g_return_val_if_fail (LIGHTDM_IS_USER (user), (uid_t)-1);
-    return common_user_get_uid (user->common_user);
+    return common_user_get_uid (GET_USER_PRIVATE (user)->common_user);
 }
 
 static void
@@ -564,11 +570,12 @@ lightdm_user_set_property (GObject    *object,
                            GParamSpec *pspec)
 {
     LightDMUser *self = LIGHTDM_USER (object);
+    LightDMUserPrivate *priv = GET_USER_PRIVATE (self);
 
     switch (prop_id)
     {
     case USER_PROP_COMMON_USER:
-        self->common_user = g_value_dup_object (value);
+        priv->common_user = g_value_dup_object (value);
         break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -637,8 +644,9 @@ static void
 lightdm_user_finalize (GObject *object)
 {
     LightDMUser *self = LIGHTDM_USER (object);
+    LightDMUserPrivate *priv = GET_USER_PRIVATE (self);
 
-    g_object_unref (self->common_user);
+    g_object_unref (priv->common_user);
 
     G_OBJECT_CLASS (lightdm_user_parent_class)->finalize (object);
 }
@@ -648,6 +656,8 @@ lightdm_user_class_init (LightDMUserClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+    g_type_class_add_private (klass, sizeof (LightDMUserPrivate));
+
     object_class->set_property = lightdm_user_set_property;
     object_class->get_property = lightdm_user_get_property;
     object_class->finalize = lightdm_user_finalize;
@@ -755,13 +765,13 @@ lightdm_user_class_init (LightDMUserClass *klass)
      * LightDMUser::changed:
      * @user: A #LightDMUser
      *
-     * The ::changed signal gets emitted when this user account is modified.
+     * The ::changed signal gets emitted this user account is modified.
      **/
     user_signals[CHANGED] =
         g_signal_new (LIGHTDM_SIGNAL_USER_CHANGED,
                       G_TYPE_FROM_CLASS (klass),
                       G_SIGNAL_RUN_LAST,
-                      0,
+                      G_STRUCT_OFFSET (LightDMUserClass, changed),
                       NULL, NULL,
                       NULL,
                       G_TYPE_NONE, 0);