diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2010-05-19 12:15:08 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-06-02 11:11:36 (GMT) |
commit | 8e6af12d6d04f0d298b92b8feca92819b58cdb66 (patch) | |
tree | 8fb8a0eb6cc0b18885a5b7b3d5135ce96b4440f2 /src/jarabe/view/palettes.py | |
parent | cb4fdde40a56e6576d4a966cc28cda3fdea471a4 (diff) |
resume journal entry race may duplicate resumed activity id #1719
Diffstat (limited to 'src/jarabe/view/palettes.py')
-rw-r--r-- | src/jarabe/view/palettes.py | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/jarabe/view/palettes.py b/src/jarabe/view/palettes.py index 2beceff..ad84f08 100644 --- a/src/jarabe/view/palettes.py +++ b/src/jarabe/view/palettes.py @@ -39,20 +39,32 @@ class BasePalette(Palette): def __init__(self, home_activity): Palette.__init__(self) - if home_activity.props.launching: - home_activity.connect('notify::launching', - self._launching_changed_cb) + self._notify_launch_hid = None + + if home_activity.props.launch_status == shell.Activity.LAUNCHING: + self._notify_launch_hid = home_activity.connect( \ + 'notify::launch-status', self.__notify_launch_status_cb) self.set_primary_text(_('Starting...')) + elif home_activity.props.launch_status == shell.Activity.LAUNCH_FAILED: + self._on_failed_launch() else: self.setup_palette() - def _launching_changed_cb(self, home_activity, pspec): - if not home_activity.props.launching: - self.setup_palette() - def setup_palette(self): raise NotImplementedError + def _on_failed_launch(self): + self.set_primary_text(_('Activity failed to start')) + + def __notify_launch_status_cb(self, home_activity, pspec): + home_activity.disconnect(self._notify_launch_hid) + self._notify_launch_hid = None + if home_activity.props.launch_status == shell.Activity.LAUNCH_FAILED: + self._on_failed_launch() + else: + self.setup_palette() + + class CurrentActivityPalette(BasePalette): def __init__(self, home_activity): self._home_activity = home_activity |