Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/view/launcher.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/view/launcher.py')
-rw-r--r--src/jarabe/view/launcher.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/jarabe/view/launcher.py b/src/jarabe/view/launcher.py
index 422a49a..89251e5 100644
--- a/src/jarabe/view/launcher.py
+++ b/src/jarabe/view/launcher.py
@@ -156,9 +156,6 @@ class _Animation(animator.Animation):
self._icon.props.size = int(self.start_size + d)
-_launchers = {}
-
-
def setup():
model = shell.get_model()
model.connect('launch-started', __launch_started_cb)
@@ -167,14 +164,15 @@ def setup():
def add_launcher(activity_id, icon_path, icon_color):
+ model = shell.get_model()
- if activity_id in _launchers:
+ if model.get_launcher(activity_id) is not None:
return
launch_window = LaunchWindow(activity_id, icon_path, icon_color)
launch_window.show()
- _launchers[activity_id] = launch_window
+ model.register_launcher(activity_id, launch_window)
def __launch_started_cb(home_model, home_activity):
@@ -184,7 +182,7 @@ def __launch_started_cb(home_model, home_activity):
def __launch_failed_cb(home_model, home_activity):
activity_id = home_activity.get_activity_id()
- launcher = _launchers.get(activity_id)
+ launcher = shell.get_model().get_launcher(activity_id)
if launcher is None:
logging.error('Launcher for %s is missing', activity_id)
@@ -209,8 +207,11 @@ def __launch_completed_cb(home_model, home_activity):
def _destroy_launcher(home_activity):
activity_id = home_activity.get_activity_id()
- if activity_id in _launchers:
- _launchers[activity_id].destroy()
- del _launchers[activity_id]
- else:
- logging.error('Launcher for %s is missing', activity_id)
+ launcher = shell.get_model().get_launcher(activity_id)
+ if launcher is None:
+ if not home_activity.is_journal():
+ logging.error('Launcher was not registered for %s', activity_id)
+ return
+
+ shell.get_model().unregister_launcher(activity_id)
+ launcher.destroy()