From: <ka...@us...> - 2011-06-09 22:27:59
|
Revision: 3544 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3544&view=rev Author: kappa1 Date: 2011-06-09 22:27:53 +0000 (Thu, 09 Jun 2011) Log Message: ----------- LinuxDisplay: run setFocusable(boolean) on the EDT Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2011-06-09 07:48:25 UTC (rev 3543) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2011-06-09 22:27:53 UTC (rev 3544) @@ -45,6 +45,7 @@ import java.nio.ByteBuffer; import java.nio.FloatBuffer; import java.nio.IntBuffer; +import java.lang.reflect.InvocationTargetException; import org.lwjgl.BufferUtils; import org.lwjgl.LWJGLException; @@ -901,13 +902,26 @@ if (focused) { acquireInput(); - if (parent != null && !xembedded) parent.setFocusable(false); + if (parent != null && !xembedded) edtSetCanvasFocus(false); } else { releaseInput(); - if (parent != null && !xembedded) parent.setFocusable(true); + if (parent != null && !xembedded) edtSetCanvasFocus(true); } } + + private void edtSetCanvasFocus(final boolean focus) { + try { + java.awt.EventQueue.invokeAndWait(new Runnable() { + public void run() { + parent.setFocusable(focus); + } + }); + } catch (InterruptedException e) { + } catch (InvocationTargetException e) { + } + } + static native long nGetInputFocus(long display); private static void setInputFocusUnsafe(long window) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |