*
* Copyright (C) 2010 Robert Ancell.
* Author: Robert Ancell <robert.ancell@canonical.com>
- *
+ *
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 3 of the License, or (at your option) any
- * later version. See http://www.gnu.org/copyleft/lgpl.html the full text of the
- * license.
+ * Software Foundation; either version 2 or version 3 of the License.
+ * See http://www.gnu.org/copyleft/lgpl.html the full text of the license.
*/
#include <libxklavier/xklavier.h>
#include "lightdm/layout.h"
enum {
- PROP_0,
- PROP_NAME,
+ PROP_NAME = 1,
PROP_SHORT_DESCRIPTION,
PROP_DESCRIPTION
};
return layouts;
display = XOpenDisplay (NULL);
+ if (display == NULL)
+ return NULL;
+
xkl_engine = xkl_engine_get_instance (display);
xkl_config = xkl_config_rec_new ();
if (!xkl_config_rec_get_from_server (xkl_config, xkl_engine))
/**
* lightdm_layout_get_name:
* @layout: A #LightDMLayout
- *
+ *
* Get the name of a layout.
- *
+ *
* Return value: The name of the layout
**/
const gchar *
/**
* lightdm_layout_get_short_description:
* @layout: A #LightDMLayout
- *
+ *
* Get the short description of a layout.
*
* Return value: A short description of the layout
/**
* lightdm_layout_get_description:
* @layout: A #LightDMLayout
- *
+ *
* Get the long description of a layout.
- *
+ *
* Return value: A long description of the layout
**/
const gchar *
static void
lightdm_layout_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
LightDMLayout *self = LIGHTDM_LAYOUT (object);
LightDMLayoutPrivate *priv = GET_PRIVATE (self);
static void
lightdm_layout_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
LightDMLayout *self;
}
}
+static void
+lightdm_layout_finalize (GObject *object)
+{
+ LightDMLayout *self = LIGHTDM_LAYOUT (object);
+ LightDMLayoutPrivate *priv = GET_PRIVATE (self);
+
+ g_free (priv->name);
+ g_free (priv->short_description);
+ g_free (priv->description);
+}
+
static void
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;
g_object_class_install_property (object_class,
PROP_NAME,