Ticket #246: sugar-246-sugar.patch

File sugar-246-sugar.patch, 1.8 KB (added by alsroot, 15 years ago)
  • src/jarabe/model/session.py

    From 86e0c613f11476d1acc73f9bb77581f08d4b57e8 Mon Sep 17 00:00:00 2001
    From: Aleksey Lim <alsroot@member.fsf.org>
    Date: Thu, 24 Sep 2009 13:17:26 +0000
    Subject: Shutdown/Reboot fails when multiple users are logged in #246
    
    ---
     src/jarabe/model/session.py |   19 ++++++++++++-------
     1 files changed, 12 insertions(+), 7 deletions(-)
    
    diff --git a/src/jarabe/model/session.py b/src/jarabe/model/session.py
    index 1c9c6db..caf675d 100644
    a b import dbus 
    1919import os
    2020import signal
    2121import sys
     22import logging
    2223
    2324from sugar import session
    2425from sugar import env
    class SessionManager(session.SessionManager): 
    4748        self.initiate_shutdown()
    4849
    4950    def shutdown_completed(self):
    50         session.SessionManager.shutdown_completed(self)
    51 
    5251        bus = dbus.SystemBus()
    5352        proxy = bus.get_object('org.freedesktop.Hal',
    5453                               '/org/freedesktop/Hal/devices/computer')
    class SessionManager(session.SessionManager): 
    5857        if env.is_emulator():
    5958            self._close_emulator()
    6059        else:
    61             if self._logout_mode == self.MODE_SHUTDOWN:
    62                 pm.Shutdown()
    63             elif self._logout_mode == self.MODE_REBOOT:
    64                 pm.Reboot()
     60            try:
     61                if self._logout_mode == self.MODE_SHUTDOWN:
     62                    pm.Shutdown()
     63                elif self._logout_mode == self.MODE_REBOOT:
     64                    pm.Reboot()
     65            except:
     66                logging.exception('Can not stop sugar')
     67                self.session.cancel_shutdown()
     68                return
    6569
    66             gtk.main_quit()
     70        session.SessionManager.shutdown_completed(self)
     71        gtk.main_quit()
    6772
    6873    def _close_emulator(self):
    6974        gtk.main_quit()