Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-12-14 13:53:50 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-12-14 13:53:50 (GMT)
commitfe45dd48861e769aca082f66a8a5721bb18a86be (patch)
tree7065b9e082dad0ea3289008b1fde8a41af171814
parent5a526bf5929cd429b211b4dbce589b29c011c003 (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-xsrc/jarabe/main.py17
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()