diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2012-02-09 16:33:51 +1100 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2012-02-09 16:33:51 +1100 |
commit | 070f8c5a5ea91573507de655df886f538c82a85b (patch) | |
tree | 344760e8ec2d10c64b7c9205fa050d8702091f9f /liblightdm-gobject | |
parent | 58e07cc142715296b06f226ba0fe0fa9edc2b164 (diff) | |
download | lightdm-070f8c5a5ea91573507de655df886f538c82a85b.tar.gz |
Add Lock D-Bus method that locks the seat and provides a hint to the greeter to be in lock mode
Diffstat (limited to 'liblightdm-gobject')
-rw-r--r-- | liblightdm-gobject/greeter.c | 33 | ||||
-rw-r--r-- | liblightdm-gobject/liblightdm-gobject-1.vapi | 1 | ||||
-rw-r--r-- | liblightdm-gobject/lightdm/greeter.h | 2 |
3 files changed, 35 insertions, 1 deletions
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c index 3c10007e..ee3960f8 100644 --- a/liblightdm-gobject/greeter.c +++ b/liblightdm-gobject/greeter.c @@ -21,6 +21,7 @@ enum { PROP_0, PROP_DEFAULT_SESSION_HINT, PROP_HIDE_USERS_HINT, + PROP_LOCK_HINT, PROP_HAS_GUEST_ACCOUNT_HINT, PROP_SELECT_USER_HINT, PROP_SELECT_GUEST_HINT, @@ -561,6 +562,25 @@ lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter) } /** + * lightdm_greeter_get_lock_hint: + * @greeter: A #LightDMGreeter + * + * Check if the greeter is acting as a lock screen. + * + * Return value: #TRUE if the greeter was triggered by locking the seat. + */ +gboolean +lightdm_greeter_get_lock_hint (LightDMGreeter *greeter) +{ + const gchar *value; + + g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); + value = lightdm_greeter_get_hint (greeter, "lock-screen"); + + return g_strcmp0 (value, "true") == 0; +} + +/** * lightdm_greeter_get_has_guest_account_hint: * @greeter: A #LightDMGreeter * @@ -970,6 +990,9 @@ lightdm_greeter_get_property (GObject *object, case PROP_HIDE_USERS_HINT: g_value_set_boolean (value, lightdm_greeter_get_hide_users_hint (self)); break; + case PROP_LOCK_HINT: + g_value_set_boolean (value, lightdm_greeter_get_lock_hint (self)); + break; case PROP_HAS_GUEST_ACCOUNT_HINT: g_value_set_boolean (value, lightdm_greeter_get_has_guest_account_hint (self)); break; @@ -1078,7 +1101,15 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass) PROP_HIDE_USERS_HINT, g_param_spec_boolean ("hide-users-hint", "hide-users-hint", - "hide users hint", + "Hide users hint", + FALSE, + G_PARAM_READABLE)); + + g_object_class_install_property (object_class, + PROP_LOCK_HINT, + g_param_spec_boolean ("lock-hint", + "lock-hint", + "Lock hint", FALSE, G_PARAM_READABLE)); diff --git a/liblightdm-gobject/liblightdm-gobject-1.vapi b/liblightdm-gobject/liblightdm-gobject-1.vapi index a9ac2431..c35774d4 100644 --- a/liblightdm-gobject/liblightdm-gobject-1.vapi +++ b/liblightdm-gobject/liblightdm-gobject-1.vapi @@ -27,6 +27,7 @@ namespace LightDM { public unowned string get_hint (string name); public unowned string default_session_hint { get; } public bool hide_users_hint { get; } + public bool lock_hint { get; } public bool has_guest_account_hint { get; } public unowned string select_user_hint { get; } public bool select_guest_hint { get; } diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h index c1b281d5..1b76be98 100644 --- a/liblightdm-gobject/lightdm/greeter.h +++ b/liblightdm-gobject/lightdm/greeter.h @@ -80,6 +80,8 @@ const gchar *lightdm_greeter_get_default_session_hint (LightDMGreeter *greeter); gboolean lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter); +gboolean lightdm_greeter_get_lock_hint (LightDMGreeter *greeter); + gboolean lightdm_greeter_get_has_guest_account_hint (LightDMGreeter *greeter); const gchar *lightdm_greeter_get_select_user_hint (LightDMGreeter *greeter); |