OSDN Git Service

LwjglCanvas, fixed for Mac. Stupid Mac.
authorNathanSweet <nathan.sweet@gmail.com>
Sat, 26 Jan 2013 16:43:20 +0000 (17:43 +0100)
committerNathanSweet <nathan.sweet@gmail.com>
Sat, 26 Jan 2013 16:43:20 +0000 (17:43 +0100)
backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglCanvas.java

index 59e78a8..10390e1 100644 (file)
@@ -41,6 +41,7 @@ import com.badlogic.gdx.backends.openal.OpenALAudio;
 import com.badlogic.gdx.utils.Array;\r
 import com.badlogic.gdx.utils.Clipboard;\r
 import com.badlogic.gdx.utils.GdxRuntimeException;\r
+import com.badlogic.gdx.utils.SharedLibraryLoader;\r
 \r
 /** An OpenGL surface on an AWT Canvas, allowing OpenGL to be embedded in a Swing application. All OpenGL calls are done on the\r
  * EDT. This is slightly less efficient then a dedicated thread, but greatly simplifies synchronization. Note that you may need to\r
@@ -79,7 +80,14 @@ public class LwjglCanvas implements Application {
 \r
                        public final void addNotify () {\r
                                super.addNotify();\r
-                               create();\r
+                               if (SharedLibraryLoader.isMac) {\r
+                                       EventQueue.invokeLater(new Runnable() {\r
+                                               public void run () {\r
+                                                       create();\r
+                                               }\r
+                                       });\r
+                               } else\r
+                                       create();\r
                        }\r
 \r
                        public final void removeNotify () {\r
@@ -265,8 +273,8 @@ public class LwjglCanvas implements Application {
                                } catch (Throwable ignored) {\r
                                }\r
                                Array<LifecycleListener> listeners = lifecycleListeners;\r
-                               synchronized(listeners) {\r
-                                       for(LifecycleListener listener: listeners) {\r
+                               synchronized (listeners) {\r
+                                       for (LifecycleListener listener : listeners) {\r
                                                listener.pause();\r
                                                listener.dispose();\r
                                        }\r
@@ -377,18 +385,18 @@ public class LwjglCanvas implements Application {
        public void setCursor (Cursor cursor) {\r
                this.cursor = cursor;\r
        }\r
-       \r
+\r
        @Override\r
        public void addLifecycleListener (LifecycleListener listener) {\r
-               synchronized(lifecycleListeners) {\r
+               synchronized (lifecycleListeners) {\r
                        lifecycleListeners.add(listener);\r
                }\r
        }\r
 \r
        @Override\r
        public void removeLifecycleListener (LifecycleListener listener) {\r
-               synchronized(lifecycleListeners) {\r
+               synchronized (lifecycleListeners) {\r
                        lifecycleListeners.removeValue(listener, true);\r
-               }               \r
+               }\r
        }\r
 }\r