diff options
Diffstat (limited to 'src/jarabe/desktop/homewindow.py')
-rw-r--r-- | src/jarabe/desktop/homewindow.py | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/src/jarabe/desktop/homewindow.py b/src/jarabe/desktop/homewindow.py index d830ed0..07deff7 100644 --- a/src/jarabe/desktop/homewindow.py +++ b/src/jarabe/desktop/homewindow.py @@ -16,6 +16,7 @@ import logging +import gobject import gtk from sugar.graphics import style @@ -28,11 +29,15 @@ from jarabe.desktop.transitionbox import TransitionBox from jarabe.model.shell import ShellModel from jarabe.model import shell -_HOME_PAGE = 0 -_GROUP_PAGE = 1 -_MESH_PAGE = 2 + +_HOME_PAGE = 0 +_GROUP_PAGE = 1 +_MESH_PAGE = 2 _TRANSITION_PAGE = 3 +_instance = None + + class HomeWindow(gtk.Window): def __init__(self): logging.debug('STARTUP: Loading the desktop window') @@ -45,8 +50,10 @@ class HomeWindow(gtk.Window): self._active = False self._fully_obscured = True - self.set_default_size(gtk.gdk.screen_width(), - gtk.gdk.screen_height()) + screen = self.get_screen() + screen.connect('size-changed', self.__screen_size_change_cb) + self.set_default_size(screen.get_width(), + screen.get_height()) self.realize() self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP) @@ -73,13 +80,16 @@ class HomeWindow(gtk.Window): self.__zoom_level_changed_cb) def _deactivate_view(self, level): - group = palettegroup.get_group("default") + group = palettegroup.get_group('default') group.popdown() if level == ShellModel.ZOOM_HOME: self._home_box.suspend() elif level == ShellModel.ZOOM_MESH: self._mesh_box.suspend() + def __screen_size_change_cb(self, screen): + self.resize(screen.get_width(), screen.get_height()) + def _activate_view(self, level): if level == ShellModel.ZOOM_HOME: self._home_box.resume() @@ -178,11 +188,22 @@ class HomeWindow(gtk.Window): def get_home_box(self): return self._home_box -_instance = None + def busy_during_delayed_action(self, action): + """Use busy cursor during execution of action, scheduled via idle_add. + """ + def action_wrapper(old_cursor): + try: + action() + finally: + self.get_window().set_cursor(old_cursor) + + old_cursor = self.get_window().get_cursor() + self.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) + gobject.idle_add(action_wrapper, old_cursor) + def get_instance(): global _instance if not _instance: _instance = HomeWindow() return _instance - |