diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-10-23 13:19:17 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-10-23 13:19:17 (GMT) |
commit | f300006b76ed905e52fb5b5848e09bf34a91216e (patch) | |
tree | 7928cacd4b7cbb16a8ac6da43ddf34cf027964d0 /shell/view/Shell.py | |
parent | 0daccca71f668b3dbf9990cc904e15a21e5cb44b (diff) |
Move window management keybindings inside sugar.
Add a TakeScreenshot dbus method and have the shell
call it when the activity can safely take a screenshot
to use as a preview.
Diffstat (limited to 'shell/view/Shell.py')
-rw-r--r-- | shell/view/Shell.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/shell/view/Shell.py b/shell/view/Shell.py index 26d39a6..20cf5bc 100644 --- a/shell/view/Shell.py +++ b/shell/view/Shell.py @@ -160,10 +160,20 @@ class Shell(gobject.GObject): self._activities_starting.add(activity_type) activityfactory.create(activity_type) + def take_activity_screenshot(self): + home_model = self._model.get_home() + service = home_model.get_active_activity().get_service() + service.TakeScreenshot() + def set_zoom_level(self, level): - if level == self._model.get_zoom_level(): + old_level = self._model.get_zoom_level() + if level == old_level: return + if old_level == ShellModel.ZOOM_ACTIVITY and \ + not self.get_frame().visible: + self.take_activity_screenshot() + if level == ShellModel.ZOOM_ACTIVITY: if self._pending_host is not None: self._pending_host.present() @@ -173,6 +183,29 @@ class Shell(gobject.GObject): self._screen.toggle_showing_desktop(True) self._home_window.set_zoom_level(level) + def toggle_activity_fullscreen(self): + if self._model.get_zoom_level() == ShellModel.ZOOM_ACTIVITY: + self.get_current_activity().toggle_fullscreen() + + def activate_previous_activity(self): + home_model = self._model.get_home() + activity = home_model.get_previous_activity() + if activity: + self.take_activity_screenshot() + activity.get_window().activate(1) + + def activate_next_activity(self): + home_model = self._model.get_home() + activity = home_model.get_next_activity() + if activity: + self.take_activity_screenshot() + activity.get_window().activate(1) + + def close_current_activity(self): + self.take_activity_screenshot() + if self._model.get_zoom_level() == ShellModel.ZOOM_ACTIVITY: + self.get_current_activity().close() + def get_current_activity(self): return self._current_host |