Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-03-12 21:29:11 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-03-12 21:29:11 (GMT)
commit3bfd94899ae00706678fdcb16edf4ff49b27e4db (patch)
tree539ec78a8592bf96aa24aee62681afc5e61c1322 /shell
parentbf80cb55b99fd2594e2cb85abddfb787c5b08485 (diff)
Bunch of fixes
Diffstat (limited to 'shell')
-rw-r--r--shell/view/Shell.py25
-rw-r--r--shell/view/frame/ActivitiesBox.py1
-rw-r--r--shell/view/frame/frame.py7
3 files changed, 27 insertions, 6 deletions
diff --git a/shell/view/Shell.py b/shell/view/Shell.py
index f4ba70c..a5985a2 100644
--- a/shell/view/Shell.py
+++ b/shell/view/Shell.py
@@ -40,10 +40,13 @@ class Shell(gobject.GObject):
self._key_handler = KeyHandler(self)
self._popup_context = PopupContext()
+
self._frame = Frame(self)
+ self._frame.show()
self._home_window = HomeWindow(self)
self._home_window.show()
+
self._zoom_level = sugar.ZOOM_HOME
home_model = self._model.get_home()
@@ -58,6 +61,8 @@ class Shell(gobject.GObject):
activity_host = ActivityHost(home_activity)
self._hosts[activity_host.get_xid()] = activity_host
+ self._frame.hide()
+
def _activity_removed_cb(self, home_model, home_activity):
if not home_activity.get_launched():
return
@@ -80,6 +85,8 @@ class Shell(gobject.GObject):
if self._current_host:
self._current_host.set_active(True)
+ self._zoom_level = sugar.ZOOM_ACTIVITY
+
def get_model(self):
return self._model
@@ -135,15 +142,25 @@ class Shell(gobject.GObject):
self.set_zoom_level(sugar.ZOOM_HOME)
def set_zoom_level(self, level):
+ if self._zoom_level == level:
+ return
+ if len(self._hosts) == 0 and level == sugar.ZOOM_ACTIVITY:
+ return
+
+ if self._zoom_level == sugar.ZOOM_HOME:
+ self._frame.restore_state()
+
self._zoom_level = level
- self._update_zoom_level()
- def _update_zoom_level(self):
- if level == sugar.ZOOM_ACTIVITY:
+ if self._zoom_level == sugar.ZOOM_ACTIVITY:
self._screen.toggle_showing_desktop(False)
else:
self._screen.toggle_showing_desktop(True)
- self._home_window.set_zoom_level(level)
+ self._home_window.set_zoom_level(self._zoom_level)
+
+ if self._zoom_level == sugar.ZOOM_HOME:
+ self._frame.save_state()
+ self._frame.show()
def get_current_activity(self):
return self._current_host
diff --git a/shell/view/frame/ActivitiesBox.py b/shell/view/frame/ActivitiesBox.py
index 1466ff4..8fcddf8 100644
--- a/shell/view/frame/ActivitiesBox.py
+++ b/shell/view/frame/ActivitiesBox.py
@@ -76,7 +76,6 @@ class ActivitiesBox(hippo.CanvasBox):
self._invites.connect('invite-removed', self._invite_removed_cb)
def _activity_clicked_cb(self, icon):
- self._shell.get_frame().hide()
self._shell.start_activity(icon.get_bundle_id())
def _invite_clicked_cb(self, icon):
diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py
index 51a8032..c34a85d 100644
--- a/shell/view/frame/frame.py
+++ b/shell/view/frame/frame.py
@@ -155,11 +155,16 @@ class Frame(object):
self._key_listener = _KeyListener(self)
self._mouse_listener = _MouseListener(self)
+ self.save_state()
+
def save_state(self):
self._saved_state = _FrameState(self.visible, self.mode)
def restore_state(self):
- if self.saved_state.visible:
+ if self._saved_state == None:
+ return
+
+ if self._saved_state.visible:
self.show()
else:
self.hide()