diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-12-14 13:53:50 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-12-14 13:53:50 (GMT) |
commit | fe45dd48861e769aca082f66a8a5721bb18a86be (patch) | |
tree | 7065b9e082dad0ea3289008b1fde8a41af171814 | |
parent | 5a526bf5929cd429b211b4dbce589b29c011c003 (diff) |
Unfreeze the dcon when the first window is mapped
It seems better than randomly doing it on idle.
TODO must be tested on the XO, but it's easier if
we first land the rest of the patches.
-rwxr-xr-x | src/jarabe/main.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/jarabe/main.py b/src/jarabe/main.py index 0158e36..312b099 100755 --- a/src/jarabe/main.py +++ b/src/jarabe/main.py @@ -71,10 +71,7 @@ from jarabe.view.service import UIService _metacity_process = None _window_manager_started = False _starting_desktop = False - -def _unfreeze_dcon_cb(): - logging.debug('STARTUP: unfreeze_dcon_cb') - screen.set_dcon_freeze(0) +_dcon_unfrozen = False def _check_software_updates(): logging.debug('STARTUP: check_software_updates') @@ -161,6 +158,12 @@ def _stop_window_manager(): global _metacity_process _metacity_process.terminate() +def _window_map_event_cb(window, event): + global _dcon_unfrozen + if not _dcon_unfrozen: + screen.set_dcon_freeze(0) + _dcon_unfrozen = True + def _begin_desktop_startup(): global _starting_desktop _starting_desktop = True @@ -172,6 +175,7 @@ def _begin_desktop_startup(): # open homewindow before window_manager to let desktop appear fast home_window = homewindow.get_instance() + home_window.connect("map-event", _window_map_event_cb) home_window.show() def _intro_window_done_cb(window): @@ -207,6 +211,7 @@ def _setup_locale(): def _start_intro(): window = IntroWindow() window.connect("done", _intro_window_done_cb) + window.connect("map-event", _window_map_event_cb) window.show_all() def _main(): @@ -223,10 +228,6 @@ def _main(): _setup_fonts() _setup_theme() - # this must be added early, so that it executes and unfreezes the screen - # even when we initially get blocked on the intro screen - GObject.idle_add(_unfreeze_dcon_cb) - cursortracker.setup() sound.restore() keyboard.setup() |