From: <ka...@us...> - 2010-04-16 19:06:59
|
Revision: 3331 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3331&view=rev Author: kappa1 Date: 2010-04-16 19:06:53 +0000 (Fri, 16 Apr 2010) Log Message: ----------- minor tweak to XRandR class to add AccessControllers to remaining methods that need it. Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java 2010-04-15 20:38:39 UTC (rev 3330) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java 2010-04-16 19:06:53 UTC (rev 3331) @@ -119,11 +119,20 @@ * @param screens * The desired screen set, may not be <code>null</code> */ - public static void setConfiguration(Screen[]/* ... */screens) { + public static void setConfiguration(final Screen[]/* ... */screens) { if (screens.length == 0) { throw new IllegalArgumentException("Must specify at least one screen"); } - + + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + setScreen(screens); + return null; + } + }); + } + + private static void setScreen(Screen[] screens) { List/* <String> */cmd = new ArrayList/* <String> */(); cmd.add("xrandr"); @@ -164,7 +173,6 @@ } catch (IOException e) { e.printStackTrace(); } - } /** @@ -172,7 +180,13 @@ * xrandr is not supported */ public static String[] getScreenNames() { - populate(); + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + populate(); + return null; + } + }); + return (String[]) screens.keySet().toArray(new String[screens.size()]); } @@ -182,7 +196,13 @@ * <code>null</code> if there is no such screen */ public static Screen[] getResolutions(String name) { - populate(); + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + populate(); + return null; + } + }); + // clone the array to prevent held copies being altered return (Screen[]) ((Screen[]) screens.get(name)).clone(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |