From 6afd512d55dacc16758428d15dd06dd41ce8f889 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 09 Mar 2007 12:47:17 +0000 Subject: Cleanup kbd config passing --- diff --git a/sugar-emulator b/sugar-emulator index 98e51d3..c87dc71 100755 --- a/sugar-emulator +++ b/sugar-emulator @@ -47,17 +47,21 @@ else: program = sys.argv[1] if gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900: - fullscreen = True width = -1 height = -1 else: - fullscreen = False width = 1200 height = 900 dpi = min(_sugar.get_screen_dpi(), 96) -emulator = Emulator(width, height, fullscreen, dpi) +if sourcedir: + kbd_config = os.path.join(sourcedir, 'shell/data/kbdconfig') +else: + kbd_config = os.path.join(env.get_data_dir(), 'kbdconfig') + +emulator = Emulator(width, height, dpi) +emulator.set_keyboard_config(kbd_config) emulator.start() if sourcedir: diff --git a/sugar/emulator.py b/sugar/emulator.py index 8491dbf..90d6cf9 100644 --- a/sugar/emulator.py +++ b/sugar/emulator.py @@ -64,13 +64,13 @@ class Process: self._stdout = result[2] class MatchboxProcess(Process): - def __init__(self): - kbd_config = os.path.join(env.get_data_dir(), 'kbdconfig') - options = '-kbdconfig %s ' % kbd_config - - options += '-use_titlebar no ' + def __init__(self, kbd_config): + options = '-use_titlebar no ' options += '-theme olpc ' + if kbd_config: + options = '-kbdconfig %s ' % kbd_config + command = 'matchbox-window-manager %s ' % options Process.__init__(self, command) @@ -78,15 +78,14 @@ class MatchboxProcess(Process): return 'Matchbox' class XephyrProcess(Process): - def __init__(self, width, height, fullscreen, dpi): + def __init__(self, width, height, dpi): self._display = get_display_number() cmd = 'Xephyr :%d -ac ' % (self._display) - if fullscreen: - cmd += ' -fullscreen ' - if width > 0 and height > 0: cmd += ' -screen %dx%d' % (width, height) + else: + cmd += ' -fullscreen ' if dpi > 0: cmd += ' -dpi %d' % (dpi) @@ -103,20 +102,22 @@ class XephyrProcess(Process): class Emulator(object): """The OLPC emulator""" - def __init__(self, width, height, fullscreen, dpi): - self._fullscreen = fullscreen + def __init__(self, width, height, dpi): + self._keyboard_config = None self._width = width self._height = height self._dpi = dpi + def set_keyboard_config(self, config): + self._keyboard_config = config + def start(self): try: - process = XephyrProcess(self._width, self._height, - self._fullscreen, self._dpi) + process = XephyrProcess(self._width, self._height, self._dpi) process.start() except: print 'Cannot run the emulator. You need to install Xephyr' sys.exit(0) - process = MatchboxProcess() + process = MatchboxProcess(self._keyboard_config) process.start() -- cgit v0.9.1