Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-02-23 18:11:14 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-02-23 18:11:14 (GMT)
commit49dd11de789ee68962af03d821adbc0adde4e274 (patch)
treedadba31379efa7d52223911967f41f3e22fde23c
parentb51bbe58b50d466c03d70431b511a89efa339172 (diff)
Switch to existing instance of an activity if it's already running #410
-rw-r--r--src/jarabe/desktop/meshbox.py11
-rw-r--r--src/jarabe/model/shell.py5
2 files changed, 12 insertions, 4 deletions
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index eb6cc80..e56c4d5 100644
--- a/src/jarabe/desktop/meshbox.py
+++ b/src/jarabe/desktop/meshbox.py
@@ -44,6 +44,7 @@ from jarabe.desktop.spreadlayout import SpreadLayout
from jarabe.desktop import keydialog
from jarabe.model import bundleregistry
from jarabe.model import network
+from jarabe.model import shell
from jarabe.model.network import Settings
from jarabe.model.network import WirelessSecurity
@@ -467,16 +468,20 @@ class ActivityView(hippo.CanvasBox):
icon.destroy()
def _clicked_cb(self, item):
- bundle_id = self._model.get_bundle_id()
-
- handle = ActivityHandle(self._model.get_id())
+ shell_model = shell.get_model()
+ activity = shell_model.get_activity_by_id(self._model.get_id())
+ if activity:
+ activity.get_window().activate(gtk.get_current_event_time())
+ return
+ bundle_id = self._model.get_bundle_id()
bundle = bundleregistry.get_registry().get_bundle(bundle_id)
launcher.add_launcher(self._model.get_id(),
bundle.get_icon(),
self._model.get_color())
+ handle = ActivityHandle(self._model.get_id())
activityfactory.create(bundle, handle)
def set_filter(self, query):
diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
index bf81dfd..561cbf6 100644
--- a/src/jarabe/model/shell.py
+++ b/src/jarabe/model/shell.py
@@ -169,7 +169,10 @@ class Activity(gobject.GObject):
def get_xid(self):
"""Retrieve the X-windows ID of our root window"""
- return self._window.get_xid()
+ if self._window is not None:
+ return self._window.get_xid()
+ else:
+ return None
def get_window(self):
"""Retrieve the X-windows root window of this application