--- lightdm-1.26.0/liblightdm-gobject/power.c 2018-06-02 09:37:42.900744191 +0000 +++ lightdm-1.26.0/liblightdm-gobject/power.c 2018-06-02 09:55:40.723462201 +0000 @@ -29,6 +29,8 @@ static GDBusProxy *upower_proxy = NULL; static GDBusProxy *ck_proxy = NULL; static GDBusProxy *login1_proxy = NULL; +static GVariant * ck_call_function (const gchar *function, GVariant *parameters, GError **error); + static GVariant * upower_call_function (const gchar *function, GError **error) { @@ -121,7 +123,11 @@ lightdm_get_can_suspend (void) if (!getenv("XDG_VTNR")) return FALSE; +#if defined(__sun) + g_autoptr(GVariant) r = ck_call_function ("CanSuspend", NULL, NULL); +#else g_autoptr(GVariant) r = login1_call_function ("CanSuspend", NULL, NULL); +#endif gboolean can_suspend = FALSE; if (r) { @@ -168,7 +174,11 @@ lightdm_suspend (GError **error) return FALSE; g_autoptr(GError) login1_error = NULL; +#if defined(__sun) + g_autoptr(GVariant) login1_result = ck_call_function ("Suspend", g_variant_new("(b)", FALSE), NULL); +#else g_autoptr(GVariant) login1_result = login1_call_function ("Suspend", g_variant_new("(b)", FALSE), &login1_error); +#endif if (login1_result) return TRUE; @@ -199,7 +209,11 @@ lightdm_get_can_hibernate (void) if (!getenv("XDG_VTNR")) return FALSE; +#if defined(__sun) + g_autoptr(GVariant) r = ck_call_function ("CanHibernate", NULL, NULL); +#else g_autoptr(GVariant) r = login1_call_function ("CanHibernate", NULL, NULL); +#endif gboolean can_hibernate = FALSE; if (r) { @@ -246,7 +260,11 @@ lightdm_hibernate (GError **error) return FALSE; g_autoptr(GError) login1_error = NULL; +#if defined(__sun) + g_autoptr(GVariant) login1_result = ck_call_function ("Hibernate", g_variant_new("(b)", FALSE), NULL); +#else g_autoptr(GVariant) login1_result = login1_call_function ("Hibernate", g_variant_new("(b)", FALSE), &login1_error); +#endif if (login1_result) return TRUE; @@ -277,7 +295,11 @@ lightdm_get_can_restart (void) if (!getenv("XDG_VTNR")) return FALSE; +#if defined(__sun) + g_autoptr(GVariant) r = ck_call_function ("CanReboot", NULL, NULL); +#else g_autoptr(GVariant) r = login1_call_function ("CanReboot", NULL, NULL); +#endif gboolean can_restart = FALSE; if (r) { @@ -314,7 +336,11 @@ lightdm_restart (GError **error) return FALSE; g_autoptr(GError) login1_error = NULL; +#if defined(__sun) + g_autoptr(GVariant) login1_result = ck_call_function ("Reboot", g_variant_new("(b)", FALSE), NULL); +#else g_autoptr(GVariant) login1_result = login1_call_function ("Reboot", g_variant_new("(b)", FALSE), &login1_error); +#endif if (login1_result) return TRUE; @@ -336,7 +362,11 @@ lightdm_get_can_shutdown (void) if (!getenv("XDG_VTNR")) return FALSE; +#if defined(__sun) + g_autoptr(GVariant) r = ck_call_function ("CanPowerOff", NULL, NULL); +#else g_autoptr(GVariant) r = login1_call_function ("CanPowerOff", NULL, NULL); +#endif gboolean can_shutdown = FALSE; if (r) { @@ -373,7 +403,11 @@ lightdm_shutdown (GError **error) return FALSE; g_autoptr(GError) login1_error = NULL; +#if defined(__sun) + g_autoptr(GVariant) login1_result = ck_call_function ("PowerOff", g_variant_new("(b)", FALSE), NULL); +#else g_autoptr(GVariant) login1_result = login1_call_function ("PowerOff", g_variant_new("(b)", FALSE), &login1_error); +#endif if (login1_result) return TRUE;