From d6ebfcbb4d93610bf30df517fcd5360fdd083b50 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 02 Jun 2010 13:00:53 +0000 Subject: 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. --- 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'] -- cgit v0.9.1