|
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.
|