diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2011-09-20 10:25:04 +1000 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2011-09-20 10:25:04 +1000 |
commit | b34ddd2b987636d41f6a6490f4d9bb66ee2f5a46 (patch) | |
tree | 054577ef473cc18b57ee97d2a433925d6d12d274 /liblightdm-gobject | |
parent | a6116ba970407377c3e25775da8dffe938c01367 (diff) | |
download | lightdm-git-b34ddd2b987636d41f6a6490f4d9bb66ee2f5a46.tar.gz |
Add ability to set the language of a user from the greeter
Diffstat (limited to 'liblightdm-gobject')
-rw-r--r-- | liblightdm-gobject/greeter.c | 28 | ||||
-rw-r--r-- | liblightdm-gobject/lightdm/greeter.h | 2 |
2 files changed, 29 insertions, 1 deletions
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c index 0b2b6302..d0819c8c 100644 --- a/liblightdm-gobject/greeter.c +++ b/liblightdm-gobject/greeter.c @@ -74,7 +74,8 @@ typedef enum GREETER_MESSAGE_AUTHENTICATE_AS_GUEST, GREETER_MESSAGE_CONTINUE_AUTHENTICATION, GREETER_MESSAGE_START_SESSION, - GREETER_MESSAGE_CANCEL_AUTHENTICATION + GREETER_MESSAGE_CANCEL_AUTHENTICATION, + GREETER_MESSAGE_SET_LANGUAGE } GreeterMessage; /* Messages from the server to the greeter */ @@ -856,6 +857,31 @@ lightdm_greeter_get_authentication_user (LightDMGreeter *greeter) } /** + * lightdm_greeter_set_language: + * @greeter: A #LightDMGreeter + * @language: The language to use for this user. + * + * Set the language for the currently authenticated user. + **/ +void +lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language) +{ + LightDMGreeterPrivate *priv; + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; + + g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); + + priv = GET_PRIVATE (greeter); + + g_return_if_fail (priv->connected); + + write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_SET_LANGUAGE, 0, &offset); + write_string (message, MAX_MESSAGE_LENGTH, language, &offset); + write_message (greeter, message, offset); +} + +/** * lightdm_greeter_start_session_sync: * @greeter: A #LightDMGreeter * @session: (allow-none): The session to log into or #NULL to use the default. diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h index 52b43311..c1b281d5 100644 --- a/liblightdm-gobject/lightdm/greeter.h +++ b/liblightdm-gobject/lightdm/greeter.h @@ -108,6 +108,8 @@ gboolean lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter); const gchar *lightdm_greeter_get_authentication_user (LightDMGreeter *greeter); +void lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language); + gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session, GError **error); G_END_DECLS |