Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-09-30 11:53:03 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-09-30 11:53:03 (GMT)
commit3d46fd8c99aeea34fce971f14129432ea52e8e12 (patch)
treea77bdf3d0fe36f78fa5a28eb1e317603436d4c85
parent8f52b0a8f4a0c8381dd23435eb73d640a698d07f (diff)
Shutdown/Reboot fails when multiple users are logged in #246
-rw-r--r--src/sugar/_sugarext.defs6
-rw-r--r--src/sugar/gsm-session.c12
-rw-r--r--src/sugar/gsm-session.h2
3 files changed, 20 insertions, 0 deletions
diff --git a/src/sugar/_sugarext.defs b/src/sugar/_sugarext.defs
index a6befa4..e36034d 100644
--- a/src/sugar/_sugarext.defs
+++ b/src/sugar/_sugarext.defs
@@ -345,6 +345,12 @@
(return-type "none")
)
+(define-method cancel_shutdown
+ (of-object "GsmSession")
+ (c-name "gsm_session_cancel_shutdown")
+ (return-type "none")
+)
+
(define-method register_client
(of-object "GsmSession")
(c-name "gsm_session_register_client")
diff --git a/src/sugar/gsm-session.c b/src/sugar/gsm-session.c
index fd3c52f..6430a94 100644
--- a/src/sugar/gsm-session.c
+++ b/src/sugar/gsm-session.c
@@ -344,6 +344,18 @@ session_cancel_shutdown (GsmSession *session)
gsm_client_shutdown_cancelled (cl->data);
}
+void
+gsm_session_cancel_shutdown (GsmSession *session)
+{
+ if (session == NULL || session->phase != GSM_SESSION_PHASE_SHUTDOWN)
+ {
+ g_warning ("Session is not in shutdown mode");
+ return;
+ }
+
+ session_cancel_shutdown (session);
+}
+
static void
initiate_shutdown (GsmSession *session)
{
diff --git a/src/sugar/gsm-session.h b/src/sugar/gsm-session.h
index 7b23b00..31d2762 100644
--- a/src/sugar/gsm-session.h
+++ b/src/sugar/gsm-session.h
@@ -84,6 +84,8 @@ GsmSessionPhase gsm_session_get_phase (GsmSession *session);
void gsm_session_initiate_shutdown (GsmSession *session);
+void gsm_session_cancel_shutdown (GsmSession *session);
+
char *gsm_session_register_client (GsmSession *session,
GsmClient *client,
const char *previous_id);