Ticket #1719: sugar-1719.patch

File sugar-1719.patch, 3.1 KB (added by alsroot, 14 years ago)
  • src/jarabe/model/shell.py

    From 688ff34f8cb69a75bdfc53acf5c94d2cec465928 Mon Sep 17 00:00:00 2001
    From: Aleksey Lim <alsroot@member.fsf.org>
    Date: Thu, 11 Mar 2010 20:03:14 +0000
    Subject: resume journal entry race may duplicate resumed activity id #1719
    
    
    diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
    index e03e0f7..a2d027e 100644
    a b _SERVICE_NAME = "org.laptop.Activity" 
    3535_SERVICE_PATH = "/org/laptop/Activity"
    3636_SERVICE_INTERFACE = "org.laptop.Activity"
    3737
     38LAUNCHED = 0
     39LAUNCHING = 1
     40ACTIVATED = 2
     41
     42
    3843class Activity(gobject.GObject):
    3944    """Activity which appears in the "Home View" of the Sugar shell
    4045
    class Activity(gobject.GObject): 
    4752    __gtype_name__ = 'SugarHomeActivity'
    4853
    4954    __gproperties__ = {
    50         'launching' : (bool, None, None, False,
     55        'launching' : (int, None, None, LAUNCHED, ACTIVATED, LAUNCHED,
    5156                       gobject.PARAM_READWRITE),
    5257    }
    5358
    class ShellModel(gobject.GObject): 
    477482
    478483            if not home_activity:
    479484                home_activity = Activity(activity_info, activity_id, window)
     485                home_activity.props.launching = LAUNCHING
    480486                self._add_activity(home_activity)
    481487            else:
    482488                home_activity.set_window(window)
    483489
    484490            if wm.get_sugar_window_type(window) != 'launcher':
    485                 home_activity.props.launching = False
     491                home_activity.props.launching = LAUNCHED
    486492                if not home_activity.is_journal():
    487493                    self.emit('launch-completed', home_activity)
    488494
    class ShellModel(gobject.GObject): 
    560566                             " was not found in the bundle registry."
    561567                             % service_name)
    562568        home_activity = Activity(activity_info, activity_id)
    563         home_activity.props.launching = True
     569        home_activity.props.launching = ACTIVATED
    564570        self._add_activity(home_activity)
    565571
    566572        self._set_active_activity(home_activity)
    class ShellModel(gobject.GObject): 
    577583        if home_activity:
    578584            logging.debug("Activity %s (%s) launch failed", activity_id,
    579585                home_activity.get_type())
    580             if home_activity.props.launching:
     586            if home_activity.props.launching != LAUNCHED:
    581587                self.emit('launch-failed', home_activity)
    582588            else:
    583589                self._remove_activity(home_activity)
  • src/jarabe/view/service.py

    diff --git a/src/jarabe/view/service.py b/src/jarabe/view/service.py
    index fbcc961..32aecac 100644
    a b class UIService(dbus.service.Object): 
    8383
    8484        if activity is not None and activity.get_window() is not None:
    8585            activity.get_window().activate(gtk.get_current_event_time())
    86             return not activity.props.launching
     86            if activity.props.launching == shell.LAUNCHING:
     87                activity.props.launching = shell.ACTIVATED
     88                return False
     89            else:
     90                return True
    8791
    8892        return False
    8993