From 5ced3525235deee7df5585a8fa6e0c8ffba452f4 Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Thu, 24 Sep 2009 13:14:36 +0000
Subject: Shutdown/Reboot fails when multiple users are logged in #246
---
src/sugar/_sugarext.defs | 6 ++++++
src/sugar/gsm-session.c | 12 ++++++++++++
src/sugar/gsm-session.h | 2 ++
3 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/sugar/_sugarext.defs b/src/sugar/_sugarext.defs
index a6befa4..e36034d 100644
a
|
b
|
|
345 | 345 | (return-type "none") |
346 | 346 | ) |
347 | 347 | |
| 348 | (define-method cancel_shutdown |
| 349 | (of-object "GsmSession") |
| 350 | (c-name "gsm_session_cancel_shutdown") |
| 351 | (return-type "none") |
| 352 | ) |
| 353 | |
348 | 354 | (define-method register_client |
349 | 355 | (of-object "GsmSession") |
350 | 356 | (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
|
b
|
session_cancel_shutdown (GsmSession *session) |
344 | 344 | gsm_client_shutdown_cancelled (cl->data); |
345 | 345 | } |
346 | 346 | |
| 347 | void |
| 348 | gsm_session_cancel_shutdown (GsmSession *session) |
| 349 | { |
| 350 | if (session == NULL || session->phase != GSM_SESSION_PHASE_SHUTDOWN) |
| 351 | { |
| 352 | g_warning ("Session is not in shutdown mode"); |
| 353 | return; |
| 354 | } |
| 355 | |
| 356 | session_cancel_shutdown (session); |
| 357 | } |
| 358 | |
347 | 359 | static void |
348 | 360 | initiate_shutdown (GsmSession *session) |
349 | 361 | { |
diff --git a/src/sugar/gsm-session.h b/src/sugar/gsm-session.h
index 7b23b00..31d2762 100644
a
|
b
|
GsmSessionPhase gsm_session_get_phase (GsmSession *session); |
84 | 84 | |
85 | 85 | void gsm_session_initiate_shutdown (GsmSession *session); |
86 | 86 | |
| 87 | void gsm_session_cancel_shutdown (GsmSession *session); |
| 88 | |
87 | 89 | char *gsm_session_register_client (GsmSession *session, |
88 | 90 | GsmClient *client, |
89 | 91 | const char *previous_id); |