Attachments you submit will be routed for moderation. If you have an account, please log in first.

Ticket #565: sugar-emulator-fullscreen.patch

File sugar-emulator-fullscreen.patch, 3.2 KB (added by sascha_silbe, 4 years ago)

Patch to add fullscreen option to sugar-emulator

  • bin/sugar-emulator

    diff --git a/bin/sugar-emulator b/bin/sugar-emulator
    index 8c0aa8e..80b03ec 100644
    a b  
    2626 
    2727from sugar import env 
    2828 
    29 def _run_xephyr(display, dpi, dimensions): 
     29default_dimensions = (1200, 900) # XO-1 screen size 
     30def _run_xephyr(display, dpi, dimensions, fullscreen): 
    3031    cmd = [ 'Xephyr' ] 
    3132    cmd.append(':%d' % display) 
    3233    cmd.append('-ac')  
    3334 
    34     if dimensions is not None: 
    35         cmd.append('-screen') 
    36         cmd.append(dimensions) 
    37     elif gtk.gdk.screen_width() < 1200 or gtk.gdk.screen_height() < 900: 
     35    screen_size = (gtk.gdk.screen_width(), gtk.gdk.screen_height()) 
     36 
     37    if (not dimensions) and (fullscreen is None) and \ 
     38       (screen_size < default_dimensions) : 
     39        # no forced settings, screen too small => fit screen 
     40        fullscreen = True 
     41    elif (not dimensions) : 
     42        # screen is big enough or user has en/disabled fullscreen manually 
     43        # => use default size (will get ignored for fullscreen) 
     44        dimensions = '%dx%d' % default_dimensions 
     45 
     46    if not dpi : 
     47        dpi = gtk.settings_get_default().get_property('gtk-xft-dpi') / 1024 
     48 
     49    if fullscreen : 
    3850        cmd.append('-fullscreen') 
    39     else: 
     51 
     52    if dimensions : 
    4053        cmd.append('-screen') 
    41         cmd.append('%dx%d' % (1200, 900)) 
     54        cmd.append(dimensions) 
    4255 
    43     if dpi is None: 
    44         dpi = gtk.settings_get_default().get_property('gtk-xft-dpi') / 1024 
    45     if dpi > 0: 
     56    if dpi : 
    4657        cmd.append('-dpi') 
    4758        cmd.append('%d' % dpi) 
    4859 
     
    5869                             stderr=open(os.devnull, "w")) 
    5970    return result == 0 
    6071 
    61 def _start_xephyr(dpi, dimensions): 
     72def _start_xephyr(dpi, dimensions, fullscreen): 
    6273    # FIXME evil workaround until F10 Xephyr is fixed 
    6374    if os.path.exists('/etc/fedora-release'): 
    6475        if open('/etc/fedora-release').read().startswith('Fedora release 10'): 
    65             _run_xephyr(random.randint(100, 500), dpi, dimensions) 
     76            _run_xephyr(random.randint(100, 500), dpi, dimensions, fullscreen) 
    6677            return 
    6778 
    6879    for display in range(100, 110): 
    6980        if not _check_xephyr(display): 
    70             _run_xephyr(display, dpi, dimensions) 
     81            _run_xephyr(display, dpi, dimensions, fullscreen) 
    7182 
    7283            tries = 10 
    7384            while tries > 0: 
     
    126137                      help='Sugar scaling in %') 
    127138    parser.add_option('-i', '--dimensions', dest='dimensions', 
    128139                      help='Emulator dimensions (ex. 1200x900)') 
     140    parser.add_option('-f', '--fullscreen', dest='fullscreen', 
     141                      action='store_true', default=None, 
     142                      help='Run emulator in fullscreen mode') 
     143    parser.add_option('-F', '--no-fullscreen', dest='fullscreen', 
     144                      action='store_false', 
     145                      help='Do not run emulator in fullscreen mode') 
    129146    (options, args) = parser.parse_args() 
    130147 
    131148    _setup_env() 
    132149 
    133     _start_xephyr(options.dpi, options.dimensions) 
     150    _start_xephyr(options.dpi, options.dimensions, options.fullscreen) 
    134151 
    135152    if options.scaling: 
    136153        os.environ['SUGAR_SCALING'] = options.scaling