diff options
-rw-r--r-- | mate-session/gsm-manager.c | 42 | ||||
-rw-r--r-- | mate-session/gsm-manager.h | 6 | ||||
-rw-r--r-- | mate-session/org.mate.SessionManager.xml | 16 |
3 files changed, 64 insertions, 0 deletions
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 @@ -2947,6 +2947,48 @@ gsm_manager_set_phase (GsmManager *manager, } 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 @@ </doc:doc> </method> + <method name="RequestShutdown"> + <doc:doc> + <doc:description> + <doc:para>Request a shutdown with no diaog</doc:para> + </doc:description> + </doc:doc> + </method> + + <method name="RequestReboot"> + <doc:doc> + <doc:description> + <doc:para>Request a reboot with no dialog</doc:para> + </doc:description> + </doc:doc> + </method> + <!-- Signals --> <signal name="ClientAdded"> |