From 97a9f2c181817b09edd0783ed808dbd1ee49b36a Mon Sep 17 00:00:00 2001 From: infirit Date: Fri, 7 Nov 2014 13:27:23 +0100 Subject: Add an IsSessionRunning method This gives clients who missed the SessionRunning signal a chance to find out if the session has entered the running phase, and lets us avoid race conditions. Based on gnome-session commit: b59d358796343f81b31d4a398998faedd20b8f4b From: Matthias Clasen Gnome bug: https://bugzilla.gnome.org/show_bug.cgi?id=636229 --- mate-session/gsm-manager.c | 11 +++++++++++ mate-session/gsm-manager.h | 4 ++++ mate-session/org.mate.SessionManager.xml | 16 +++++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c index e814323..2a4d140 100644 --- a/mate-session/gsm-manager.c +++ b/mate-session/gsm-manager.c @@ -3942,3 +3942,14 @@ gsm_manager_add_autostart_apps_from_dir (GsmManager *manager, return TRUE; } + +gboolean +gsm_manager_is_session_running (GsmManager *manager, + gboolean *running, + GError **error) +{ + g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE); + + *running = (manager->priv->phase == GSM_MANAGER_PHASE_RUNNING); + return TRUE; +} diff --git a/mate-session/gsm-manager.h b/mate-session/gsm-manager.h index 035d11b..4422f59 100644 --- a/mate-session/gsm-manager.h +++ b/mate-session/gsm-manager.h @@ -190,6 +190,10 @@ gboolean gsm_manager_is_autostart_condition_handled (GsmManager * gboolean gsm_manager_set_phase (GsmManager *manager, GsmManagerPhase phase); +gboolean gsm_manager_is_session_running (GsmManager *manager, + gboolean *running, + GError **error); + #ifdef __cplusplus } #endif diff --git a/mate-session/org.mate.SessionManager.xml b/mate-session/org.mate.SessionManager.xml index 1569cf7..9b6f452 100644 --- a/mate-session/org.mate.SessionManager.xml +++ b/mate-session/org.mate.SessionManager.xml @@ -316,7 +316,21 @@ - + + + + + True if the session has entered the Running phase, false otherwise + + + + + Allows the caller to determine whether the session manager + has entered the Running phase, in case the client missed the + SessionRunning signal. + + + -- cgit v1.2.1