From: Robert Ancell Date: Wed, 29 Jun 2011 16:21:59 +0000 (+0100) Subject: Change greeter library API, starting a session no longer has a language option X-Git-Url: http://rtime.felk.cvut.cz/gitweb/sojka/lightdm.git/commitdiff_plain/c6c04fc5d38374dfb30910d758675f937a0e244b Change greeter library API, starting a session no longer has a language option --- 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: - - - - - - - -@greeter: 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 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