From d2717333e57bd8b2e8533d8c3de8ceb120830f6a Mon Sep 17 00:00:00 2001 From: Steve Zesch Date: Thu, 10 May 2012 12:50:16 -0400 Subject: Fixed reboot/shutdown issue. --- mate-session/gsm-manager.c | 42 ++++++++++++++++++++++++++++++++ mate-session/gsm-manager.h | 6 +++++ mate-session/org.mate.SessionManager.xml | 16 ++++++++++++ 3 files changed, 64 insertions(+) (limited to 'mate-session') diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c index eb84b87..8bdc49e 100644 --- a/mate-session/gsm-manager.c +++ b/mate-session/gsm-manager.c @@ -2946,6 +2946,48 @@ gsm_manager_set_phase (GsmManager *manager, return (TRUE); } +gboolean +gsm_manager_request_shutdown (GsmManager *manager, + GError **error) +{ + g_debug ("GsmManager: RequestShutdown called"); + + g_return_val_if_fail(GSM_IS_MANAGER (manager), FALSE); + + if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) { + g_set_error (error, + GSM_MANAGER_ERROR, + GSM_MANAGER_ERROR_NOT_IN_RUNNING, + "RequestShutdown interface is only available during the Running phase"); + return FALSE; + } + + request_shutdown (manager); + + return TRUE; +} + +gboolean +gsm_manager_request_reboot (GsmManager *manager, + GError **error) +{ + g_debug ("GsmManager: RequestReboot called"); + + g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE); + + if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) { + g_set_error (error, + GSM_MANAGER_ERROR, + GSM_MANAGER_ERROR_NOT_IN_RUNNING, + "RequestReboot interface is only available during the running phase"); + return FALSE; + } + + request_reboot (manager); + + return TRUE; +} + gboolean gsm_manager_shutdown (GsmManager *manager, GError **error) diff --git a/mate-session/gsm-manager.h b/mate-session/gsm-manager.h index 635590c..8daca06 100644 --- a/mate-session/gsm-manager.h +++ b/mate-session/gsm-manager.h @@ -151,6 +151,12 @@ gboolean gsm_manager_is_inhibited (GsmManager gboolean *is_inhibited, GError *error); +gboolean gsm_manager_request_shutdown (GsmManager *manager, + GError **error); + +gboolean gsm_manager_request_reboot (GsmManager *manager, + GError **error); + gboolean gsm_manager_shutdown (GsmManager *manager, GError **error); diff --git a/mate-session/org.mate.SessionManager.xml b/mate-session/org.mate.SessionManager.xml index 9d693e6..9577428 100644 --- a/mate-session/org.mate.SessionManager.xml +++ b/mate-session/org.mate.SessionManager.xml @@ -301,6 +301,22 @@ + + + + Request a shutdown with no diaog + + + + + + + + Request a reboot with no dialog + + + + -- cgit v1.2.1