Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/sugar-emulator45
-rw-r--r--bin/sugar.in2
2 files changed, 32 insertions, 15 deletions
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"