From bd0e0115dbc65f31c0e70b16a70a74e35cf03b87 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Mon, 20 Apr 2009 09:24:09 +0000 Subject: Add fullscreen option to the emulator and change default size to 800x600 (Sascha Silbe) #565 --- diff --git a/bin/sugar-emulator b/bin/sugar-emulator index 8c0aa8e..acd5976 100644 --- a/bin/sugar-emulator +++ b/bin/sugar-emulator @@ -26,23 +26,34 @@ import gobject from sugar import env -def _run_xephyr(display, dpi, dimensions): +default_dimensions = (800, 600) +def _run_xephyr(display, dpi, dimensions, fullscreen): cmd = [ 'Xephyr' ] cmd.append(':%d' % display) cmd.append('-ac') - if dimensions is not None: - cmd.append('-screen') - cmd.append(dimensions) - elif gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900: + screen_size = (gtk.gdk.screen_width(), gtk.gdk.screen_height()) + + if (not dimensions) and (fullscreen is None) and \ + (screen_size < default_dimensions) : + # no forced settings, screen too small => fit screen + fullscreen = True + elif (not dimensions) : + # screen is big enough or user has en/disabled fullscreen manually + # => use default size (will get ignored for fullscreen) + dimensions = '%dx%d' % default_dimensions + + if not dpi : + dpi = gtk.settings_get_default().get_property('gtk-xft-dpi') / 1024 + + if fullscreen : cmd.append('-fullscreen') - else: + + if dimensions : cmd.append('-screen') - cmd.append('%dx%d' % (1200, 900)) + cmd.append(dimensions) - if dpi is None: - dpi = gtk.settings_get_default().get_property('gtk-xft-dpi') / 1024 - if dpi > 0: + if dpi : cmd.append('-dpi') cmd.append('%d' % dpi) @@ -58,16 +69,16 @@ def _check_xephyr(display): stderr=open(os.devnull, "w")) return result == 0 -def _start_xephyr(dpi, dimensions): +def _start_xephyr(dpi, dimensions, fullscreen): # FIXME evil workaround until F10 Xephyr is fixed if os.path.exists('/etc/fedora-release'): if open('/etc/fedora-release').read().startswith('Fedora release 10'): - _run_xephyr(random.randint(100, 500), dpi, dimensions) + _run_xephyr(random.randint(100, 500), dpi, dimensions, fullscreen) return for display in range(100, 110): if not _check_xephyr(display): - _run_xephyr(display, dpi, dimensions) + _run_xephyr(display, dpi, dimensions, fullscreen) tries = 10 while tries > 0: @@ -126,11 +137,17 @@ def main(): help='Sugar scaling in %') parser.add_option('-i', '--dimensions', dest='dimensions', help='Emulator dimensions (ex. 1200x900)') + parser.add_option('-f', '--fullscreen', dest='fullscreen', + action='store_true', default=None, + help='Run emulator in fullscreen mode') + parser.add_option('-F', '--no-fullscreen', dest='fullscreen', + action='store_false', + help='Do not run emulator in fullscreen mode') (options, args) = parser.parse_args() _setup_env() - _start_xephyr(options.dpi, options.dimensions) + _start_xephyr(options.dpi, options.dimensions, options.fullscreen) if options.scaling: os.environ['SUGAR_SCALING'] = options.scaling diff --git a/bin/sugar.in b/bin/sugar.in index b9f467c..3c9b9b6 100644 --- a/bin/sugar.in +++ b/bin/sugar.in @@ -1,7 +1,7 @@ #!/bin/sh if test -z "$SUGAR_SCALING"; then - export SUGAR_SCALING=100 + export SUGAR_SCALING=72 fi export GTK2_RC_FILES="@prefix@/share/sugar/data/sugar-$SUGAR_SCALING.gtkrc" -- cgit v0.9.1