diff options
Diffstat (limited to 'liblightdm-gobject/power.c')
-rw-r--r-- | liblightdm-gobject/power.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/liblightdm-gobject/power.c b/liblightdm-gobject/power.c index bc1ddefd..c2467e56 100644 --- a/liblightdm-gobject/power.c +++ b/liblightdm-gobject/power.c @@ -139,9 +139,13 @@ lightdm_get_can_suspend (void) } if (!r) { + const gchar *result; r = ck_call_function ("CanSuspend", NULL, NULL); - if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(b)"))) - g_variant_get (r, "(b)", &can_suspend); + if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(s)"))) + { + g_variant_get (r, "(&s)", &result); + can_suspend = g_strcmp0 (result, "yes") == 0; + } } if (!r) { @@ -217,9 +221,13 @@ lightdm_get_can_hibernate (void) } if (!r) { + const gchar *result; r = ck_call_function ("CanHibernate", NULL, NULL); - if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(b)"))) - g_variant_get (r, "(b)", &can_hibernate); + if (r && g_variant_is_of_type (r, G_VARIANT_TYPE ("(s)"))) + { + g_variant_get (r, "(&s)", &result); + can_hibernate = g_strcmp0 (result, "yes") == 0; + } } if (!r) { |