summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2011-06-29 17:21:59 +0100
committerRobert Ancell <robert.ancell@canonical.com>2011-06-29 17:21:59 +0100
commitbdc46696acac279fa210cf24f481e9dc4a9c430c (patch)
tree0590060f64c19c28a8235511a68db375d6c6be01
parent09480f1673febb3d3e24ba6facb9968b69701f93 (diff)
downloadlightdm-bdc46696acac279fa210cf24f481e9dc4a9c430c.tar.gz
Change greeter library API, starting a session no longer has a language option
-rw-r--r--NEWS2
-rw-r--r--doc/tmpl/greeter.sgml9
-rw-r--r--greeters/gtk/lightdm-example-gtk-greeter.c2
-rw-r--r--greeters/vala-gtk/lightdm-example-vala-gtk-greeter.vala2
-rw-r--r--liblightdm-gobject/greeter.c14
-rw-r--r--liblightdm-gobject/liblightdm-gobject-0.vapi4
-rw-r--r--liblightdm-gobject/lightdm/greeter.h4
-rw-r--r--liblightdm-qt/QLightDM/greeter.cpp7
-rw-r--r--liblightdm-qt/QLightDM/greeter.h2
-rw-r--r--src/display.c23
-rw-r--r--src/greeter.c16
-rw-r--r--src/greeter.h2
-rw-r--r--src/ldm-marshal.list1
-rw-r--r--tests/src/test-gobject-greeter.c2
14 files changed, 31 insertions, 59 deletions
diff --git a/NEWS b/NEWS
index 8f21fca9..5da709cc 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,8 @@ Overview of changes in lightdm 0.4.1
* Restart X server if it crashes during a session
* Don't set language environment variables, use the daemon values
(system default) and leave it to ~/.profile for users to set these
+ * Change greeter library API, starting a session no longer has a language
+ option
Overview of changes in lightdm 0.4.0
diff --git a/doc/tmpl/greeter.sgml b/doc/tmpl/greeter.sgml
index 1f3bb75a..297a3b7b 100644
--- a/doc/tmpl/greeter.sgml
+++ b/doc/tmpl/greeter.sgml
@@ -482,15 +482,6 @@ g_object_connect (G_OBJECT (greeter), "quit", G_CALLBACK (quit_cb), NULL);
@greeter:
@session:
-@language:
-
-
-<!-- ##### FUNCTION ldm_greeter_start_session_with_defaults ##### -->
-<para>
-
-</para>
-
-@greeter:
<!-- ##### FUNCTION ldm_greeter_get_can_suspend ##### -->
diff --git a/greeters/gtk/lightdm-example-gtk-greeter.c b/greeters/gtk/lightdm-example-gtk-greeter.c
index 1df3e99a..da6a0070 100644
--- a/greeters/gtk/lightdm-example-gtk-greeter.c
+++ b/greeters/gtk/lightdm-example-gtk-greeter.c
@@ -186,7 +186,7 @@ authentication_complete_cb (LdmGreeter *greeter)
if (ldm_greeter_get_is_authenticated (greeter))
{
gchar *session = get_session ();
- ldm_greeter_start_session (greeter, session, NULL);
+ ldm_greeter_start_session (greeter, session);
g_free (session);
}
else
diff --git a/greeters/vala-gtk/lightdm-example-vala-gtk-greeter.vala b/greeters/vala-gtk/lightdm-example-vala-gtk-greeter.vala
index cc6fcce1..f3794831 100644
--- a/greeters/vala-gtk/lightdm-example-vala-gtk-greeter.vala
+++ b/greeters/vala-gtk/lightdm-example-vala-gtk-greeter.vala
@@ -97,7 +97,7 @@ class Greeter
username_entry.sensitive = true;
username_entry.grab_focus ();
if (greeter.is_authenticated)
- greeter.start_session_with_defaults ();
+ greeter.start_default_session ();
else
{
message_label.label = "Failed to authenticate";
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index d8522bd3..f4137fc3 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -1403,12 +1403,11 @@ ldm_greeter_get_authentication_user (LdmGreeter *greeter)
* ldm_greeter_start_session:
* @greeter: A #LdmGreeter
* @session: (allow-none): The session to log into or NULL to use the default
- * @language: (allow-none): The language to use or NULL to use the default
*
* Start a session for the logged in user.
**/
void
-ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session, const gchar *language)
+ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session)
{
guint8 message[MAX_MESSAGE_LENGTH];
gsize offset = 0;
@@ -1417,13 +1416,10 @@ ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session, const gcha
if (!session)
session = "";
- if (!language)
- language = "";
- g_debug ("Starting session %s with language %s", session, language);
- write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_START_SESSION, string_length (session) + string_length (language), &offset);
+ g_debug ("Starting session %s", session);
+ write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_START_SESSION, string_length (session), &offset);
write_string (message, MAX_MESSAGE_LENGTH, session, &offset);
- write_string (message, MAX_MESSAGE_LENGTH, language, &offset);
write_message (greeter, message, offset);
}
@@ -1434,9 +1430,9 @@ ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session, const gcha
* Login a user to a session using default settings for that user.
**/
void
-ldm_greeter_start_session_with_defaults (LdmGreeter *greeter)
+ldm_greeter_start_default_session (LdmGreeter *greeter)
{
- ldm_greeter_start_session (greeter, NULL, NULL);
+ ldm_greeter_start_session (greeter, NULL);
}
static gboolean
diff --git a/liblightdm-gobject/liblightdm-gobject-0.vapi b/liblightdm-gobject/liblightdm-gobject-0.vapi
index 6aa5d4db..aa20f65a 100644
--- a/liblightdm-gobject/liblightdm-gobject-0.vapi
+++ b/liblightdm-gobject/liblightdm-gobject-0.vapi
@@ -31,8 +31,8 @@ namespace LightDM {
public bool get_user_defaults (string username, out string language, out string layout, out string session);
public unowned GLib.List<weak LightDM.User> get_users ();
public void hibernate ();
- public void start_session (string? session, string? language);
- public void start_session_with_defaults ();
+ public void start_session (string? session);
+ public void start_default_session ();
public void provide_secret (string secret);
public void restart ();
public void set_layout (string layout);
diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h
index 1eced7d2..52a8f3f6 100644
--- a/liblightdm-gobject/lightdm/greeter.h
+++ b/liblightdm-gobject/lightdm/greeter.h
@@ -115,9 +115,9 @@ gboolean ldm_greeter_get_is_authenticated (LdmGreeter *greeter);
const gchar *ldm_greeter_get_authentication_user (LdmGreeter *greeter);
-void ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session, const gchar *language);
+void ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session);
-void ldm_greeter_start_session_with_defaults (LdmGreeter *greeter);
+void ldm_greeter_start_default_session (LdmGreeter *greeter);
gboolean ldm_greeter_get_can_suspend (LdmGreeter *greeter);
diff --git a/liblightdm-qt/QLightDM/greeter.cpp b/liblightdm-qt/QLightDM/greeter.cpp
index b7cff168..738762a0 100644
--- a/liblightdm-qt/QLightDM/greeter.cpp
+++ b/liblightdm-qt/QLightDM/greeter.cpp
@@ -266,12 +266,11 @@ QString Greeter::authenticationUser() const
return d->authenticationUser;
}
-void Greeter::startSession(const QString &session, const QString &language)
+void Greeter::startSession(const QString &session)
{
- qDebug() << "Starting session " << session << " with language " << language;
- writeHeader(GREETER_MESSAGE_START_SESSION, stringLength(session) + stringLength(language));
+ qDebug() << "Starting session " << session;
+ writeHeader(GREETER_MESSAGE_START_SESSION, stringLength(session));
writeString(session);
- writeString(language);
flush();
}
diff --git a/liblightdm-qt/QLightDM/greeter.h b/liblightdm-qt/QLightDM/greeter.h
index 6d507ba5..76877c4a 100644
--- a/liblightdm-qt/QLightDM/greeter.h
+++ b/liblightdm-qt/QLightDM/greeter.h
@@ -70,7 +70,7 @@ namespace QLightDM
void loginAsGuest();
void provideSecret(const QString &secret);
void cancelAuthentication();
- void startSession(const QString &session=QString(), const QString &language=QString());
+ void startSession(const QString &session=QString());
bool canSuspend() const;
bool canHibernate() const;
diff --git a/src/display.c b/src/display.c
index 2b03b636..70bc0144 100644
--- a/src/display.c
+++ b/src/display.c
@@ -523,9 +523,9 @@ really_start_user_session (Display *display)
}
static gboolean
-start_user_session (Display *display, const gchar *session, const gchar *language)
+start_user_session (Display *display, const gchar *session)
{
- gchar *filename, *path, *old_language, *xsessions_dir;
+ gchar *filename, *path, *xsessions_dir;
gchar *session_command;
User *user;
gboolean supports_transitions;
@@ -543,15 +543,6 @@ start_user_session (Display *display, const gchar *session, const gchar *languag
/* Update the .dmrc with changed settings */
g_key_file_set_string (dmrc_file, "Desktop", "Session", session);
- old_language = g_key_file_get_string (dmrc_file, "Desktop", "Language", NULL);
- if (language && (!old_language || !g_str_equal(language, old_language)))
- {
- g_key_file_set_string (dmrc_file, "Desktop", "Language", language);
- /* We don't have advanced language checking, so reset these variables */
- g_key_file_remove_key (dmrc_file, "Desktop", "Langlist", NULL);
- g_key_file_remove_key (dmrc_file, "Desktop", "LCMess", NULL);
- }
- g_free (old_language);
xsessions_dir = config_get_string (config_get_instance (), "LightDM", "xsessions-directory");
filename = g_strdup_printf ("%s.desktop", session);
@@ -637,7 +628,7 @@ default_session_authentication_result_cb (PAMSession *session, int result, Displ
{
g_debug ("User %s authorized", pam_session_get_username (session));
pam_session_authorize (session);
- start_user_session (display, display->priv->default_session, NULL);
+ start_user_session (display, display->priv->default_session);
}
else
{
@@ -674,16 +665,12 @@ session_timeout_cb (Display *display)
}
static void
-greeter_start_session_cb (Greeter *greeter, const gchar *session, const gchar *language, Display *display)
+greeter_start_session_cb (Greeter *greeter, const gchar *session, Display *display)
{
/* Default session requested */
if (strcmp (session, "") == 0)
session = display->priv->default_session;
- /* Default language requested */
- if (strcmp (language, "") == 0)
- language = NULL;
-
display->priv->user_pam_session = greeter_get_pam_session (greeter);
if (!display->priv->user_pam_session ||
@@ -693,7 +680,7 @@ greeter_start_session_cb (Greeter *greeter, const gchar *session, const gchar *l
return;
}
- start_user_session (display, session, language);
+ start_user_session (display, session);
/* Stop session, waiting for user session to indicate it is ready (if supported) */
// FIXME: Hard-coded timeout
diff --git a/src/greeter.c b/src/greeter.c
index 6ad0f024..740eeebc 100644
--- a/src/greeter.c
+++ b/src/greeter.c
@@ -413,7 +413,7 @@ greeter_quit (Greeter *greeter)
}
static void
-handle_start_session (Greeter *greeter, gchar *session, gchar *language)
+handle_start_session (Greeter *greeter, gchar *session)
{
/*if (greeter->priv->user_session != NULL)
{
@@ -421,9 +421,9 @@ handle_start_session (Greeter *greeter, gchar *session, gchar *language)
return;
}*/
- g_debug ("Greeter start session %s with language %s", session, language);
+ g_debug ("Greeter start session %s", session);
- g_signal_emit (greeter, signals[START_SESSION], 0, session, language);
+ g_signal_emit (greeter, signals[START_SESSION], 0, session);
}
static void
@@ -503,7 +503,7 @@ got_data_cb (Greeter *greeter)
gsize n_to_read, n_read, offset;
GIOStatus status;
int id, n_secrets, i;
- gchar *username, *session_name, *language;
+ gchar *username, *session_name;
gchar **secrets;
GError *error = NULL;
@@ -576,10 +576,8 @@ got_data_cb (Greeter *greeter)
break;
case GREETER_MESSAGE_START_SESSION:
session_name = read_string (greeter, &offset);
- language = read_string (greeter, &offset);
- handle_start_session (greeter, session_name, language);
+ handle_start_session (greeter, session_name);
g_free (session_name);
- g_free (language);
break;
case GREETER_MESSAGE_GET_USER_DEFAULTS:
username = read_string (greeter, &offset);
@@ -667,8 +665,8 @@ greeter_class_init (GreeterClass *klass)
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GreeterClass, start_session),
NULL, NULL,
- ldm_marshal_VOID__STRING_STRING,
- G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE, 1, G_TYPE_STRING);
g_type_class_add_private (klass, sizeof (GreeterPrivate));
}
diff --git a/src/greeter.h b/src/greeter.h
index 51d11e40..05f1b614 100644
--- a/src/greeter.h
+++ b/src/greeter.h
@@ -31,7 +31,7 @@ typedef struct
typedef struct
{
SessionClass parent_class;
- void (*start_session)(Greeter *greeter, const gchar *session, const gchar *language);
+ void (*start_session)(Greeter *greeter, const gchar *session);
} GreeterClass;
GType greeter_get_type (void);
diff --git a/src/ldm-marshal.list b/src/ldm-marshal.list
index 98e9da78..599d93c8 100644
--- a/src/ldm-marshal.list
+++ b/src/ldm-marshal.list
@@ -1,4 +1,3 @@
BOOLEAN:OBJECT
VOID:INT,POINTER
VOID:OBJECT,BOOLEAN
-VOID:STRING,STRING
diff --git a/tests/src/test-gobject-greeter.c b/tests/src/test-gobject-greeter.c
index 4f64b07a..4018972c 100644
--- a/tests/src/test-gobject-greeter.c
+++ b/tests/src/test-gobject-greeter.c
@@ -65,7 +65,7 @@ authentication_complete_cb (LdmGreeter *greeter)
{
notify_status ("GREETER AUTHENTICATION-COMPLETE AUTHENTICATED=%s", ldm_greeter_get_is_authenticated (greeter) ? "TRUE" : "FALSE");
if (ldm_greeter_get_is_authenticated (greeter))
- ldm_greeter_start_session_with_defaults (greeter);
+ ldm_greeter_start_default_session (greeter);
}
static void