Ticket #565: sugar-emulator-fullscreen.patch
| File sugar-emulator-fullscreen.patch, 3.2 KB (added by sascha_silbe, 4 years ago) |
|---|
-
bin/sugar-emulator
diff --git a/bin/sugar-emulator b/bin/sugar-emulator index 8c0aa8e..80b03ec 100644
a b 26 26 27 27 from sugar import env 28 28 29 def _run_xephyr(display, dpi, dimensions): 29 default_dimensions = (1200, 900) # XO-1 screen size 30 def _run_xephyr(display, dpi, dimensions, fullscreen): 30 31 cmd = [ 'Xephyr' ] 31 32 cmd.append(':%d' % display) 32 33 cmd.append('-ac') 33 34 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 : 38 50 cmd.append('-fullscreen') 39 else: 51 52 if dimensions : 40 53 cmd.append('-screen') 41 cmd.append( '%dx%d' % (1200, 900))54 cmd.append(dimensions) 42 55 43 if dpi is None: 44 dpi = gtk.settings_get_default().get_property('gtk-xft-dpi') / 1024 45 if dpi > 0: 56 if dpi : 46 57 cmd.append('-dpi') 47 58 cmd.append('%d' % dpi) 48 59 … … 58 69 stderr=open(os.devnull, "w")) 59 70 return result == 0 60 71 61 def _start_xephyr(dpi, dimensions ):72 def _start_xephyr(dpi, dimensions, fullscreen): 62 73 # FIXME evil workaround until F10 Xephyr is fixed 63 74 if os.path.exists('/etc/fedora-release'): 64 75 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) 66 77 return 67 78 68 79 for display in range(100, 110): 69 80 if not _check_xephyr(display): 70 _run_xephyr(display, dpi, dimensions )81 _run_xephyr(display, dpi, dimensions, fullscreen) 71 82 72 83 tries = 10 73 84 while tries > 0: … … 126 137 help='Sugar scaling in %') 127 138 parser.add_option('-i', '--dimensions', dest='dimensions', 128 139 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') 129 146 (options, args) = parser.parse_args() 130 147 131 148 _setup_env() 132 149 133 _start_xephyr(options.dpi, options.dimensions )150 _start_xephyr(options.dpi, options.dimensions, options.fullscreen) 134 151 135 152 if options.scaling: 136 153 os.environ['SUGAR_SCALING'] = options.scaling
