Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-06-02 13:00:53 (GMT)
committer Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-06-02 13:00:53 (GMT)
commitd6ebfcbb4d93610bf30df517fcd5360fdd083b50 (patch)
tree96da2e7ac71b8d81d758c4741ea4495b02fd77db
parent7e5b8ee22743d7900022df15d0b9e4f6a4273942 (diff)
Set the DISPLAY env var once Xephyr has been launched #1860
Otherwise when we retry to run Xephyr, it runs under the wrong DISPLAY var and would always fall.
-rw-r--r--src/jarabe/util/emulator.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/jarabe/util/emulator.py b/src/jarabe/util/emulator.py
index d9dca7f..5a99dbe 100644
--- a/src/jarabe/util/emulator.py
+++ b/src/jarabe/util/emulator.py
@@ -71,8 +71,6 @@ def _run_xephyr(display, dpi, dimensions, fullscreen):
sys.stderr.write('Error executing server: %s\n' % (exc, ))
return None
- os.environ['DISPLAY'] = ":%d" % (display)
- os.environ['SUGAR_EMULATOR_PID'] = str(pipe.pid)
return pipe
@@ -98,17 +96,17 @@ def _start_xephyr(dpi, dimensions, fullscreen):
if not _check_server(display):
pipe = _run_xephyr(display, dpi, dimensions, fullscreen)
if pipe is None:
- return None
+ return None, None
for i_ in range(10):
if _check_server(display):
- return pipe
+ return pipe, display
time.sleep(0.1)
_kill_pipe(pipe)
- return None
+ return None, None
def _start_window_manager():
@@ -118,7 +116,7 @@ def _start_window_manager():
gobject.spawn_async(cmd, flags=gobject.SPAWN_SEARCH_PATH)
-def _setup_env():
+def _setup_env(display, scaling, emulator_pid):
os.environ['SUGAR_EMULATOR'] = 'yes'
os.environ['GABBLE_LOGFILE'] = os.path.join(
env.get_profile_path(), 'logs', 'telepathy-gabble.log')
@@ -126,7 +124,11 @@ def _setup_env():
env.get_profile_path(), 'logs', 'telepathy-salut.log')
os.environ['STREAM_ENGINE_LOGFILE'] = os.path.join(
env.get_profile_path(), 'logs', 'telepathy-stream-engine.log')
+ os.environ['DISPLAY'] = ":%d" % (display)
+ os.environ['SUGAR_EMULATOR_PID'] = emulator_pid
+ if scaling:
+ os.environ['SUGAR_SCALING'] = scaling
def main():
"""Script-level operations"""
@@ -150,16 +152,14 @@ def main():
sys.stderr.write('DISPLAY not set, cannot connect to host X server.\n')
return ERROR_NO_DISPLAY
- _setup_env()
-
- server = _start_xephyr(options.dpi, options.dimensions, options.fullscreen)
+ server, display = _start_xephyr(options.dpi, options.dimensions,
+ options.fullscreen)
if server is None:
sys.stderr.write('Failed to start server. Please check output above'
' for any error message.\n')
return ERROR_NO_SERVER
- if options.scaling:
- os.environ['SUGAR_SCALING'] = options.scaling
+ _setup_env(display, options.scaling, str(server.pid))
command = ['dbus-launch', '--exit-with-session']