summaryrefslogtreecommitdiff
path: root/liblightdm-gobject
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2012-02-09 16:33:51 +1100
committerRobert Ancell <robert.ancell@canonical.com>2012-02-09 16:33:51 +1100
commit070f8c5a5ea91573507de655df886f538c82a85b (patch)
tree344760e8ec2d10c64b7c9205fa050d8702091f9f /liblightdm-gobject
parent58e07cc142715296b06f226ba0fe0fa9edc2b164 (diff)
downloadlightdm-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.c33
-rw-r--r--liblightdm-gobject/liblightdm-gobject-1.vapi1
-rw-r--r--liblightdm-gobject/lightdm/greeter.h2
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);