diff options
Diffstat (limited to 'src/view/Shell.py')
-rw-r--r-- | src/view/Shell.py | 49 |
1 files changed, 22 insertions, 27 deletions
diff --git a/src/view/Shell.py b/src/view/Shell.py index 875e9a5..1095878 100644 --- a/src/view/Shell.py +++ b/src/view/Shell.py @@ -56,7 +56,6 @@ class Shell(gobject.GObject): self._hosts = {} self._screen = wnck.screen_get_default() self._current_host = None - self._pending_host = None self._screen_rotation = 0 self._key_handler = KeyHandler() @@ -67,12 +66,12 @@ class Shell(gobject.GObject): self._home_window.show() home_model = self._model.get_home() - home_model.connect('activity-started', self._activity_started_cb) + home_model.connect('launch-started', self.__launch_started_cb) + home_model.connect('launch-failed', self.__launch_failed_cb) + home_model.connect('launch-completed', self.__launch_completed_cb) home_model.connect('activity-removed', self._activity_removed_cb) home_model.connect('active-activity-changed', self._active_activity_changed_cb) - home_model.connect('pending-activity-changed', - self._pending_activity_changed_cb) gobject.idle_add(self._start_journal_idle) @@ -95,7 +94,19 @@ class Shell(gobject.GObject): if registry.get_activity('org.laptop.JournalActivity'): self.start_activity('org.laptop.JournalActivity') - def _activity_started_cb(self, home_model, home_activity): + def __launch_started_cb(self, home_model, home_activity): + if home_activity.get_type() == 'org.laptop.JournalActivity': + return + + self._screen.toggle_showing_desktop(True) + self._home_window.set_zoom_level(shellmodel.ShellModel.ZOOM_ACTIVITY) + self._home_window.launch_box.zoom_in() + + def __launch_failed_cb(self, home_model, home_activity): + if self._screen.get_showing_desktop(): + self._home_window.set_zoom_level(shellmodel.ShellModel.ZOOM_HOME) + + def __launch_completed_cb(self, home_model, home_activity): activity_host = ActivityHost(home_activity) self._hosts[activity_host.get_xid()] = activity_host if home_activity.get_type() in self._activities_starting: @@ -110,22 +121,17 @@ class Shell(gobject.GObject): del self._hosts[xid] def _active_activity_changed_cb(self, home_model, home_activity): + host = None if home_activity: - host = self._hosts[home_activity.get_xid()] - else: - host = None + xid = home_activity.get_xid() + if xid: + host = self._hosts[home_activity.get_xid()] if self._current_host: self._current_host.set_active(False) self._current_host = host - def _pending_activity_changed_cb(self, home_model, home_activity): - if home_activity: - self._pending_host = self._hosts[home_activity.get_xid()] - else: - self._pending_host = None - def get_model(self): return self._model @@ -150,17 +156,6 @@ class Shell(gobject.GObject): handle = ActivityHandle(activity_id) activityfactory.create(bundle_id, handle) - def notify_launch(self, bundle_id, activity_id): - # Zoom to Home for launch feedback - self.set_zoom_level(shellmodel.ShellModel.ZOOM_HOME) - - home_model = self._model.get_home() - home_model.notify_activity_launch(activity_id, bundle_id) - - def notify_launch_failure(self, activity_id): - home_model = self._model.get_home() - home_model.notify_activity_launch_failed(activity_id) - def start_activity(self, activity_type): if activity_type in self._activities_starting: logging.debug("This activity is still launching.") @@ -192,8 +187,8 @@ class Shell(gobject.GObject): self.take_activity_screenshot() if level == shellmodel.ShellModel.ZOOM_ACTIVITY: - if self._pending_host is not None: - self._pending_host.present() + if self._current_host is not None: + self._current_host.present() self._screen.toggle_showing_desktop(False) else: self._model.set_zoom_level(level) |