Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-03-02 15:33:38 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-03-02 15:33:38 (GMT)
commit5bcb8faf44dbfe5cd6e5f304ad8f7e63c61d2349 (patch)
tree44b65837b6031e47be5f98c4b49e6745e2e6faa6 /src
parentc1b5b9cf98c5d7f1a1d4c90f4df189770e87cb8c (diff)
Don't open a launcher window when that activity is already running #426
Diffstat (limited to 'src')
-rw-r--r--src/jarabe/desktop/favoritesview.py7
-rw-r--r--src/jarabe/frame/activitiestray.py7
-rw-r--r--src/jarabe/model/shell.py9
3 files changed, 19 insertions, 4 deletions
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
index 9669d75..0f842c8 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -526,6 +526,13 @@ class ActivityIcon(CanvasIcon):
self.palette.popdown(immediate=True)
if self._journal_entries:
entry = self._journal_entries[0]
+
+ shell_model = shell.get_model()
+ activity = shell_model.get_activity_by_id(entry['activity_id'])
+ if activity:
+ activity.get_window().activate(gtk.get_current_event_time())
+ return
+
launcher.add_launcher(entry['activity_id'],
self._activity_info.get_icon(),
XoColor(entry.get('icon-color', '')))
diff --git a/src/jarabe/frame/activitiestray.py b/src/jarabe/frame/activitiestray.py
index 9c5aae7..fcdb613 100644
--- a/src/jarabe/frame/activitiestray.py
+++ b/src/jarabe/frame/activitiestray.py
@@ -165,6 +165,13 @@ class ActivityInviteButton(BaseInviteButton):
def _launch(self):
"""Join the activity in the invite."""
+
+ shell_model = shell.get_model()
+ activity = shell_model.get_activity_by_id(self._activity_model.get_id())
+ if activity:
+ activity.get_window().activate(gtk.get_current_event_time())
+ return
+
registry = bundleregistry.get_registry()
bundle = registry.get_bundle(self._bundle_id)
diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
index 561cbf6..cfc49ab 100644
--- a/src/jarabe/model/shell.py
+++ b/src/jarabe/model/shell.py
@@ -467,16 +467,17 @@ class ShellModel(gobject.GObject):
home_activity.props.launching = False
self.emit('launch-completed', home_activity)
- startup_time = time.time() - home_activity.get_launch_time()
- logging.debug('%s launched in %f seconds.' %
- (home_activity.get_type(), startup_time))
+ startup_time = time.time() - home_activity.get_launch_time()
+ logging.debug('%s launched in %f seconds.' %
+ (home_activity.get_type(), startup_time))
if self._active_activity is None:
self._set_active_activity(home_activity)
def _window_closed_cb(self, screen, window):
if window.get_window_type() == wnck.WINDOW_NORMAL:
- self._remove_activity_by_xid(window.get_xid())
+ if self._get_activity_by_xid(window.get_xid()) is not None:
+ self._remove_activity_by_xid(window.get_xid())
def _get_activity_by_xid(self, xid):
for home_activity in self._activities: