summaryrefslogtreecommitdiff
path: root/liblightdm-gobject
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2013-07-23 14:24:45 +1200
committerRobert Ancell <robert.ancell@canonical.com>2013-07-23 14:24:45 +1200
commit0f956f52f1f365c21c6357b8bc159986d2dd9b82 (patch)
treead8c16377ced0f238a71b811108cc6907130654b /liblightdm-gobject
parent3e1d6047758cfc510033e775a35db8b70cf5c4fe (diff)
parente7d20496246a38ec388a6be665c1a0154dab7478 (diff)
downloadlightdm-0f956f52f1f365c21c6357b8bc159986d2dd9b82.tar.gz
Merge with trunk
Diffstat (limited to 'liblightdm-gobject')
-rw-r--r--liblightdm-gobject/Makefile.am2
-rw-r--r--liblightdm-gobject/greeter.c44
-rw-r--r--liblightdm-gobject/lightdm/greeter.h14
-rw-r--r--liblightdm-gobject/lightdm/language.h14
-rw-r--r--liblightdm-gobject/lightdm/layout.h14
-rw-r--r--liblightdm-gobject/lightdm/session.h14
-rw-r--r--liblightdm-gobject/lightdm/user.h28
-rw-r--r--liblightdm-gobject/session.c34
-rw-r--r--liblightdm-gobject/user.c8
9 files changed, 75 insertions, 97 deletions
diff --git a/liblightdm-gobject/Makefile.am b/liblightdm-gobject/Makefile.am
index 449276ca..9ab209e8 100644
--- a/liblightdm-gobject/Makefile.am
+++ b/liblightdm-gobject/Makefile.am
@@ -5,7 +5,7 @@ liblightdm_gobject_1_la_LIBADD = $(LIBLIGHTDM_GOBJECT_LIBS)
liblightdm_gobject_1_la_CFLAGS = $(LIBLIGHTDM_GOBJECT_CFLAGS) \
$(WARN_CFLAGS) \
-DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \
- -DXSESSIONS_DIR=\"$(datadir)/xsessions\" \
+ -DSESSIONS_DIR=\"$(pkgdatadir)/sessions:$(datadir)/xsessions\" \
-DREMOTE_SESSIONS_DIR=\"$(pkgdatadir)/remote-sessions\"
mainheader_HEADERS = lightdm.h
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 8f90308f..9387118c 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -1184,42 +1184,6 @@ lightdm_greeter_get_property (GObject *object,
}
static void
-marshal_VOID__STRING_INT (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer data1,
- gpointer arg_1,
- gint arg_2,
- gpointer data2);
- register GMarshalFunc_VOID__STRING_INT callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
-
- g_return_if_fail (n_param_values == 3);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback);
-
- callback (data1,
- (param_values + 1)->data[0].v_pointer,
- (param_values + 2)->data[0].v_int,
- data2);
-}
-
-static void
lightdm_greeter_finalize (GObject *object)
{
LightDMGreeter *self = LIGHTDM_GREETER (object);
@@ -1375,7 +1339,7 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMGreeterClass, show_prompt),
NULL, NULL,
- marshal_VOID__STRING_INT,
+ NULL,
G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
/**
@@ -1393,7 +1357,7 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMGreeterClass, show_message),
NULL, NULL,
- marshal_VOID__STRING_INT,
+ NULL,
G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
/**
@@ -1412,7 +1376,7 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMGreeterClass, authentication_complete),
NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
+ NULL,
G_TYPE_NONE, 0);
/**
@@ -1428,6 +1392,6 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMGreeterClass, autologin_timer_expired),
NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
+ NULL,
G_TYPE_NONE, 0);
}
diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h
index af409dee..7d8988f2 100644
--- a/liblightdm-gobject/lightdm/greeter.h
+++ b/liblightdm-gobject/lightdm/greeter.h
@@ -58,13 +58,13 @@ typedef struct
void (*authentication_complete)(LightDMGreeter *greeter);
void (*autologin_timer_expired)(LightDMGreeter *greeter);
- /* Reserved */
- void (*reserved1) (void);
- void (*reserved2) (void);
- void (*reserved3) (void);
- void (*reserved4) (void);
- void (*reserved5) (void);
- void (*reserved6) (void);
+ /* Reserved */
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
} LightDMGreeterClass;
GType lightdm_greeter_get_type (void);
diff --git a/liblightdm-gobject/lightdm/language.h b/liblightdm-gobject/lightdm/language.h
index 71d9ea1b..52caf9c9 100644
--- a/liblightdm-gobject/lightdm/language.h
+++ b/liblightdm-gobject/lightdm/language.h
@@ -31,13 +31,13 @@ typedef struct
{
GObjectClass parent_class;
- /* Reserved */
- void (*reserved1) (void);
- void (*reserved2) (void);
- void (*reserved3) (void);
- void (*reserved4) (void);
- void (*reserved5) (void);
- void (*reserved6) (void);
+ /* Reserved */
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
} LightDMLanguageClass;
GType lightdm_language_get_type (void);
diff --git a/liblightdm-gobject/lightdm/layout.h b/liblightdm-gobject/lightdm/layout.h
index 095a28da..3e0687d0 100644
--- a/liblightdm-gobject/lightdm/layout.h
+++ b/liblightdm-gobject/lightdm/layout.h
@@ -31,13 +31,13 @@ typedef struct
{
GObjectClass parent_class;
- /* Reserved */
- void (*reserved1) (void);
- void (*reserved2) (void);
- void (*reserved3) (void);
- void (*reserved4) (void);
- void (*reserved5) (void);
- void (*reserved6) (void);
+ /* Reserved */
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
} LightDMLayoutClass;
GType lightdm_layout_get_type (void);
diff --git a/liblightdm-gobject/lightdm/session.h b/liblightdm-gobject/lightdm/session.h
index ed8abb89..13ddcd9f 100644
--- a/liblightdm-gobject/lightdm/session.h
+++ b/liblightdm-gobject/lightdm/session.h
@@ -31,13 +31,13 @@ typedef struct
{
GObjectClass parent_class;
- /* Reserved */
- void (*reserved1) (void);
- void (*reserved2) (void);
- void (*reserved3) (void);
- void (*reserved4) (void);
- void (*reserved5) (void);
- void (*reserved6) (void);
+ /* Reserved */
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
} LightDMSessionClass;
GType lightdm_session_get_type (void);
diff --git a/liblightdm-gobject/lightdm/user.h b/liblightdm-gobject/lightdm/user.h
index 860a1ab4..b43fc516 100644
--- a/liblightdm-gobject/lightdm/user.h
+++ b/liblightdm-gobject/lightdm/user.h
@@ -39,13 +39,13 @@ typedef struct
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);
+ /* Reserved */
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
} LightDMUserClass;
typedef struct
@@ -61,13 +61,13 @@ typedef struct
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);
+ /* Reserved */
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
} LightDMUserListClass;
GType lightdm_user_list_get_type (void);
diff --git a/liblightdm-gobject/session.c b/liblightdm-gobject/session.c
index 0642c299..82fc75ab 100644
--- a/liblightdm-gobject/session.c
+++ b/liblightdm-gobject/session.c
@@ -114,10 +114,9 @@ load_session (GKeyFile *key_file, const gchar *key)
}
static GList *
-load_sessions (const gchar *sessions_dir)
+load_sessions_dir (GList *sessions, const gchar *sessions_dir)
{
GDir *directory;
- GList *sessions = NULL;
GError *error = NULL;
directory = g_dir_open (sessions_dir, 0, &error);
@@ -125,7 +124,7 @@ load_sessions (const gchar *sessions_dir)
g_warning ("Failed to open sessions directory: %s", error->message);
g_clear_error (&error);
if (!directory)
- return NULL;
+ return sessions;
while (TRUE)
{
@@ -175,12 +174,27 @@ load_sessions (const gchar *sessions_dir)
return sessions;
}
+static GList *
+load_sessions (const gchar *sessions_dir)
+{
+ GList *sessions = NULL;
+ gchar **dirs;
+ int i;
+
+ dirs = g_strsplit (sessions_dir, ":", -1);
+ for (i = 0; dirs[i]; i++)
+ sessions = load_sessions_dir (sessions, dirs[i]);
+ g_strfreev (dirs);
+
+ return sessions;
+}
+
static void
update_sessions (void)
{
GKeyFile *config_key_file = NULL;
gchar *config_path = NULL;
- gchar *xsessions_dir;
+ gchar *sessions_dir;
gchar *remote_sessions_dir;
gchar *mir_sessions_dir;
gboolean result;
@@ -189,7 +203,7 @@ update_sessions (void)
if (have_sessions)
return;
- xsessions_dir = g_strdup (XSESSIONS_DIR);
+ sessions_dir = g_strdup (SESSIONS_DIR);
remote_sessions_dir = g_strdup (REMOTE_SESSIONS_DIR);
/* Use session directory from configuration */
@@ -204,11 +218,11 @@ update_sessions (void)
{
gchar *value;
- value = g_key_file_get_string (config_key_file, "LightDM", "xsessions-directory", NULL);
+ value = g_key_file_get_string (config_key_file, "LightDM", "sessions-directory", NULL);
if (value)
{
- g_free (xsessions_dir);
- xsessions_dir = value;
+ g_free (sessions_dir);
+ sessions_dir = value;
}
value = g_key_file_get_string (config_key_file, "LightDM", "remote-sessions-directory", NULL);
@@ -221,10 +235,10 @@ update_sessions (void)
g_key_file_free (config_key_file);
g_free (config_path);
- local_sessions = load_sessions (xsessions_dir);
+ local_sessions = load_sessions (sessions_dir);
remote_sessions = load_sessions (remote_sessions_dir);
- g_free (xsessions_dir);
+ g_free (sessions_dir);
g_free (remote_sessions_dir);
have_sessions = TRUE;
diff --git a/liblightdm-gobject/user.c b/liblightdm-gobject/user.c
index 37e73f98..d8bd2e08 100644
--- a/liblightdm-gobject/user.c
+++ b/liblightdm-gobject/user.c
@@ -979,7 +979,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMUserListClass, user_added),
NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
+ NULL,
G_TYPE_NONE, 1, LIGHTDM_TYPE_USER);
/**
@@ -995,7 +995,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMUserListClass, user_changed),
NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
+ NULL,
G_TYPE_NONE, 1, LIGHTDM_TYPE_USER);
/**
@@ -1011,7 +1011,7 @@ lightdm_user_list_class_init (LightDMUserListClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMUserListClass, user_removed),
NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
+ NULL,
G_TYPE_NONE, 1, LIGHTDM_TYPE_USER);
}
@@ -1614,7 +1614,7 @@ lightdm_user_class_init (LightDMUserClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (LightDMUserClass, changed),
NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
+ NULL,
G_TYPE_NONE, 0);
}